TODO

  • in quantile regression, 5th percentile throws errors for peta2 so I’ve removed it for the moment.
  • Re-running the data processing would add abs_B to the dataset and allow it to be included
  • look into the impossible effect size - what proportion are extraction errors vs actually impossible values?
  • Add random sampling and categorization of what sort of effects or comparisons give rise to what magnitdue of effect sizes?
  • Clarify source of each ES
    • Save journal list to disk.
    • eg was peta2 explicitly reported or recalculated from F test? is it definitely peta2 and not eta2? were r values in text or also tables?
  • Consider adding the cuijpers 2025 multi domain meta analysis data to answer the question of distribution of cohen’s d in a specific area, i.e., RCTs of clinical interventions.

Dependencies

library(tidyverse)
library(scales)
library(janitor)
library(rlang)
library(patchwork)
library(ggridges)
library(knitr)
library(kableExtra)
library(quantreg)
library(ggstance)

Load data

data_effectsizes <- read_rds("../data/bogdan 2025/processed/data_effectsizes.rds")

data_effectsizes_possible <- data_effectsizes |>
  filter(possible == TRUE)

Descriptives

Impossible values

For bounded effect sizes

data_effectsizes |>
  filter(type %in% c("peta2", "r", "abs_r", "rho", "abs_rho", "R2", "OR")) |>
  group_by(type) |>
  summarize(n = n(),
            percent_impossible = round_half_up(mean(!possible)*100, 3),
            n_impossible = sum(!possible)) |>
  arrange(desc(percent_impossible)) |>
  kable() |>
  kable_classic(full_width = FALSE)
type n percent_impossible n_impossible
R2 8160 5.723 467
abs_r 131669 0.774 1019
r 131669 0.774 1019
abs_rho 3149 0.445 14
rho 3149 0.445 14
OR 43890 0.011 5
peta2 1219322 0.002 29

Articles (by subfield)

data_effectsizes_possible |>
  distinct(doi, .keep_all = TRUE) |>
  count() |>
  kable() |>
  kable_classic(full_width = FALSE)
n
173926
data_effectsizes_possible |>
  distinct(doi, .keep_all = TRUE) |>
  count(subfield) |>
  kable() |>
  kable_classic(full_width = FALSE)
subfield n
Applied Psychology 20262
Clinical Psychology 28944
Developmental and Educational Psychology 51949
Experimental and Cognitive Psychology 12662
General Psychology 46084
Social Psychology 14025

Journals

# data_effectsizes_possible |>
#   distinct(doi, .keep_all = TRUE) |>
#   count(journal) |>
#   kable() |>
#   kable_classic(full_width = FALSE)

data_effectsizes_possible |>
  distinct(journal) |>
  count() |>
  kable() |>
  kable_classic(full_width = FALSE)
n
386

Years

data_effectsizes_possible |>
  distinct(year) |>
  arrange(desc(year)) |>
  slice(1, n()) |>
  kable() |>
  kable_classic(full_width = FALSE)
year
2024
2004

Frequency by effect size type

data_effectsizes_possible |>
  count(type) |>
  arrange(desc(n)) |>
  kable() |>
  kable_classic(full_width = FALSE)
type n
peta2 1219293
d_s 454687
d_z 454687
chi2 185020
abs_stdB 143581
stdB 143581
abs_r 130650
r 130650
B 104679
OR 43885
logOR 43885
abs_OR 43868
d_native 23089
sqrtR2 8150
R2 7693
Wald 5941
abs_rho 3135
rho 3135

Percentiles

data_percentiles_long <- data_effectsizes_possible |>
  filter(type %in% unique(type)) |>
  group_by(type) |>
  summarise(
    across(
      .cols = everything(),
      .fns = list, 
      .names = "{.col}_list"
    ), # just for clarity — we only care about estimate column
    .groups = "drop_last"
  ) |>
  select(type, estimate = estimate_list) |>
  unnest(estimate) |>
  group_by(type) |>
  summarise(
    percentile = c(1, 5, 10, 20, 25, 30, 40, 50, 60, 70, 75, 80, 90, 95, 99) / 100,
    value = map_dbl(percentile, ~ quantile(estimate, probs = .x, na.rm = TRUE)),
    .groups = "drop"
  ) |>
  mutate(percentile = percentile * 100) 

data_percentiles <- data_percentiles_long |>
  pivot_wider(names_from = type, values_from = value) |>
  select(percentile,
         d_native, 
         d_s, 
         d_z, 
         
         abs_r, 
         #r, 
         #rho, 
         #abs_rho, 
         #sqrtR2,
         
         peta2, 
         R2, 
         
         #OR, 
         abs_OR, 
         #logOR, 
         
         chi2, 
         
         B, 
         #abs_B,
         stdB,
         abs_stdB)
         #Wald

Overall

data_percentiles |>
  mutate_if(is.numeric, round_half_up, digits = 2) |>
  kable() |>
  kable_classic(full_width = FALSE)
percentile d_native d_s d_z abs_r peta2 R2 abs_OR chi2 B stdB abs_stdB
1 0.02 0.02 0.01 0.01 0.00 0.00 1.01 0.03 -1.36 -0.42 0.00
5 0.07 0.09 0.04 0.06 0.00 0.01 1.03 0.57 -0.01 0.00 0.02
10 0.13 0.17 0.08 0.11 0.01 0.01 1.08 1.60 0.01 0.03 0.05
20 0.24 0.30 0.15 0.17 0.03 0.03 1.19 4.29 0.06 0.08 0.10
25 0.29 0.36 0.18 0.20 0.04 0.04 1.27 5.40 0.08 0.10 0.12
30 0.34 0.42 0.21 0.22 0.05 0.06 1.34 6.70 0.11 0.13 0.14
40 0.45 0.55 0.28 0.27 0.08 0.09 1.53 10.16 0.18 0.17 0.18
50 0.56 0.71 0.36 0.33 0.11 0.13 1.76 15.97 0.27 0.22 0.23
60 0.70 0.90 0.46 0.38 0.16 0.17 2.05 27.16 0.40 0.28 0.29
70 0.89 1.17 0.59 0.45 0.24 0.24 2.49 53.12 0.61 0.35 0.36
75 1.01 1.34 0.68 0.49 0.29 0.28 2.80 79.98 0.79 0.41 0.42
80 1.14 1.57 0.80 0.54 0.36 0.33 3.25 129.78 1.09 0.47 0.49
90 1.61 2.40 1.23 0.67 0.55 0.48 5.26 441.13 2.51 0.75 0.78
95 2.30 3.40 1.74 0.78 0.71 0.62 8.85 986.36 5.62 1.59 1.73
99 7.14 7.48 3.87 0.94 0.91 0.89 33.33 4247.75 32.24 12.41 14.65
# data_percentiles |>
#   pivot_longer(col = -percentile,
#                names_to = "estimator",
#                values_to = "estimate") |>
#   ggplot(aes(as.factor(percentile), estimate)) +
#   geom_bar(stat = "identity", width = 0.8) +
#   theme_linedraw() +
#   facet_wrap(~ estimator, scales = "free")
#
# data_percentiles |>
#   pivot_longer(col = -percentile,
#                names_to = "estimator",
#                values_to = "estimate") |>
#   mutate(estimator = fct_relevel(estimator, 
#                                  "d_native", "d_s", "d_z", 
#                                  "abs_r", "R2", "peta2", 
#                                  "abs_OR")) |>
#   filter(estimator %in% c("d_native", "d_s", "d_z", "abs_OR", "peta2", "abs_r", "R2")) |>
#   ggplot(aes(as.factor(percentile), estimate)) +
#   geom_bar(stat = "identity", width = 0.8) +
#   theme_linedraw() +
#   facet_wrap(~ estimator, scales = "free")

Plot

data_percentiles_for_plot <- data_percentiles_long |>
  filter(type %in% c("d_native", 
                     "d_s", 
                     "d_z", 
                     "abs_r",
                     "peta2", 
                     "R2", 
                     "abs_OR",
                     "abs_stdB",
                     "chi2")) |>
  mutate(type_lab = case_when(
    type == "d_native" ~ "\"Cohen's\"~'|'*italic(d)*'|'~'(reported)'",
    type == "d_s"      ~ "\"Cohen's\"~'|'*italic(d)[s]*'|'~'(from t-test)'",
    type == "d_z"      ~ "\"Cohen's\"~'|'*italic(d)[z]*'|'~'(from t-test)'",
    type == "abs_r"    ~ "\"Pearson's\"~'|'*italic(r)*'|'",
    type == "peta2"    ~ "eta[p]^2",
    type == "R2"       ~ "italic(R)^2",
    type == "abs_OR"   ~ "\"|Odds Ratio|\"",
    type == "abs_stdB" ~ "'|'*italic(beta)*'|'",
    type == "chi2"     ~ "chi^2",
    TRUE ~ type
  )) |>
  mutate(type_lab = fct_relevel(
    type_lab,
    "\"Cohen's\"~'|'*italic(d)*'|'~'(reported)'",
    "\"Cohen's\"~'|'*italic(d)[s]*'|'~'(from t-test)'",
    "\"Cohen's\"~'|'*italic(d)[z]*'|'~'(from t-test)'",
    "\"Pearson's\"~'|'*italic(r)*'|'",
    "eta[p]^2",
    "italic(R)^2",
    "\"|Odds Ratio|\"",
    "'|'*italic(beta)*'|'",
    "chi^2"
  )) |>
  drop_na() 
labs_map <- c(
  d_native = "\"Cohen's\"~group('|',italic(d),'|')~'(reported)'",
  d_s      = "\"Independent Cohen's\"~group('|',italic(d)[s],'|')~'(recalculated from t-test)'",
  d_z      = "\"Dependent Cohen's\"~group('|',italic(d)[z],'|')~'(recalculated from t-test)'"
)

label_map_parsed <- function(map) {
  force(map)
  function(x) parse(text = unname(map[x]))
}

data_percentiles_for_plot |>
  filter(percentile < 99) |>
  filter(str_detect(type, "d_")) |>
  mutate(type = fct_relevel(type, "d_z", "d_native", "d_s")) |>
  ggplot(aes(value, percentile, color = type)) +  
  geom_line() +
  geom_point() +
  scale_y_continuous(
    #breaks = c(1, seq(5, 95, 5), 99), 
    breaks = c(1, seq(5, 95, 5)), 
    name = "Percentile"
  ) +
  scale_x_continuous(
    breaks = scales::breaks_pretty(n = 8), 
    #limits = c(0, 1), 
    name = expression("Cohen's" ~ group("|", italic(d), "|"))
  ) +
  theme_linedraw() +
  theme(
    panel.grid.minor = element_blank(),
    strip.placement = "outside",
    strip.background = element_blank(),  # no fill or box
    strip.text = element_text(colour = "black"),
    legend.position = c(0.65, 0.3)
  ) +
  scale_colour_discrete(
    name = "Method",
    breaks = c("d_z", "d_native", "d_s"),  # desired legend order
    #breaks = names(labs_map),
    labels = label_map_parsed(labs_map)
  )

ggsave("plots/percentiles_bogdan_d.png", width = 6, height = 4, dpi = 600)
data_percentiles_for_plot |>
  filter(percentile < 99) |>
  filter(!str_detect(type, "d_")) |>
  ggplot(aes(value, percentile)) +  
  geom_line() +
  geom_point() +
  scale_y_continuous(
    #breaks = c(1, seq(5, 95, 5), 99), 
    breaks = c(1, seq(5, 95, 5)), 
    name = "Percentile"
  ) +
  scale_x_continuous(
    breaks = scales::breaks_pretty(n = 8), 
    #limits = c(0, 1), 
    name = "Effect size"
  ) +
  theme_linedraw() +
  theme(
    panel.grid.minor = element_blank(),
    strip.placement = "outside",
    strip.background = element_blank(),  # no fill or box
    strip.text = element_text(colour = "black")
    #legend.position = c(0.8, 0.4)
  ) +
  facet_wrap(~ type_lab, 
             scales = "free", 
             strip.position = "bottom",
             labeller = label_parsed)

ggsave("plots/percentiles_bogdan_others.png", width = 12, height = 8, dpi = 600)

By subfield

# data_percentiles_by_subfield <- 
#   data_effectsizes_possible |>
#   filter(type %in% unique(type)) |>
#   group_by(type, subfield) |>
#   summarise(
#     across(
#       .cols = everything(),
#       .fns = list, 
#       .names = "{.col}_list"
#     ), # just for clarity — we only care about estimate column
#     .groups = "drop_last"
#   ) |>
#   select(type, subfield, estimate = estimate_list) |>
#   unnest(estimate) |>
#   group_by(type, subfield) |>
#   summarise(
#     percentile = c(1, 5, 10, 25, 50, 75, 90, 95, 99) / 100,
#     value = map_dbl(percentile, ~ quantile(estimate, probs = .x, na.rm = TRUE)),
#     .groups = "drop"
#   ) |>
#   mutate(percentile = percentile * 100) |>
#   pivot_wider(names_from = type, values_from = value) |>
#   select(subfield, 
#          percentile,
#          d_native, 
#          d_s, 
#          d_z, 
#          
#          abs_r, 
#          #r, 
#          #rho, 
#          #abs_rho, 
#          #sqrtR2,
#          
#          peta2, 
#          R2, 
#          
#          #OR, 
#          abs_OR, 
#          #logOR, 
#          
#          chi2, 
#          
#          B, 
#          #abs_B,
#          stdB,
#          abs_stdB) |>
#          #Wald
#   arrange(subfield, percentile)
# 
# data_percentiles_by_subfield |>
#   mutate_if(is.numeric, round_half_up, digits = 2) |>
#   kable() |>
#   kable_classic(full_width = FALSE)

# data_percentiles_by_subfield |>
#   pivot_longer(col = -c(percentile, subfield),
#                names_to = "estimator",
#                values_to = "estimate") |>
#   ggplot(aes(as.factor(percentile), estimate)) +
#   geom_bar(stat = "identity", width = 0.8) +
#   theme_linedraw() +
#   facet_grid(subfield ~ estimator, scales = "free")

# data_percentiles_by_subfield |>
#   pivot_longer(col = -c(percentile, subfield),
#                names_to = "estimator",
#                values_to = "estimate") |>
#   mutate(estimator = fct_relevel(estimator,
#                                  "d_native", "d_s", "d_z",
#                                  "abs_r", "R2", "peta2",
#                                  "abs_OR")) |>
#   filter(estimator %in% c("d_native", "d_s", "d_z", "abs_OR", "peta2", "abs_r", "R2")) |>
#   ggplot(aes(as.factor(percentile), estimate)) +
#   geom_bar(stat = "identity", width = 0.8) +
#   theme_linedraw() +
#   facet_grid(estimator ~ subfield, scales = "free")
# 
# data_percentiles_by_subfield |>
#   pivot_longer(col = -c(percentile, subfield),
#                names_to = "estimator",
#                values_to = "estimate") |>
#   mutate(estimator = fct_relevel(estimator,
#                                  "d_native", "d_s", "d_z",
#                                  "abs_r", "R2", "peta2",
#                                  "abs_OR")) |>
#   filter(estimator %in% c("d_native", "d_s", "d_z", "abs_OR", "peta2", "abs_r", "R2")) |>
#   ggplot(aes(as.factor(percentile), estimate, fill = subfield)) +
#   geom_bar(stat = "identity", width = 0.8, position = position_dodge(width = .8), color = "black") +
#   theme_linedraw() +
#   facet_wrap( ~ estimator, scales = "free")
data_percentiles_by_subfield <- 
  data_effectsizes_possible |>
  filter(type %in% unique(type)) |>
  group_by(type, subfield) |>
  summarise(
    across(
      .cols = everything(),
      .fns = list, 
      .names = "{.col}_list"
    ), # just for clarity — we only care about estimate column
    .groups = "drop_last"
  ) |>
  select(type, subfield, estimate = estimate_list) |>
  unnest(estimate) |>
  group_by(type, subfield) |>
  summarise(
    percentile = c(1, 5, 10, 25, 50, 75, 90, 95, 99) / 100,
    value = map_dbl(percentile, ~ quantile(estimate, probs = .x, na.rm = TRUE)),
    .groups = "drop"
  ) |>
  mutate(percentile = percentile * 100) |>
  pivot_wider(names_from = subfield, values_from = value) |>
  filter(type %in% c("d_native",
                     "d_s",
                     "d_z",
                     "abs_r",
                     "peta2",
                     "R2",
                     "abs_OR",
                     "chi2",
                     "B",
                     "stdB",
                     "abs_stdB")) |>
  mutate(type = fct_relevel(type, 
                            "d_native",
                            "d_s",
                            "d_z",
                            "abs_r",
                            "peta2",
                            "R2",
                            "abs_OR",
                            "chi2",
                            "B",
                            "stdB",
                            "abs_stdB")) |>
  arrange(type, percentile)

data_percentiles_by_subfield |>
  mutate_if(is.numeric, round_half_up, digits = 2) |>
  kable() |>
  kable_classic(full_width = FALSE)
type percentile Applied Psychology Clinical Psychology Developmental and Educational Psychology Experimental and Cognitive Psychology General Psychology Social Psychology
d_native 1 0.01 0.01 0.02 0.02 0.01 0.01
d_native 5 0.07 0.08 0.08 0.09 0.08 0.05
d_native 10 0.12 0.13 0.14 0.16 0.14 0.10
d_native 25 0.26 0.30 0.30 0.35 0.29 0.23
d_native 50 0.49 0.56 0.57 0.66 0.56 0.45
d_native 75 0.86 0.99 1.02 1.15 1.03 0.87
d_native 90 1.34 1.47 1.57 1.83 1.81 1.45
d_native 95 1.78 2.05 2.20 2.55 2.97 1.96
d_native 99 4.74 6.13 7.18 6.87 13.06 3.97
d_s 1 0.02 0.02 0.02 0.02 0.02 0.02
d_s 5 0.08 0.08 0.09 0.10 0.08 0.07
d_s 10 0.15 0.16 0.18 0.20 0.15 0.14
d_s 25 0.31 0.33 0.40 0.47 0.33 0.30
d_s 50 0.55 0.63 0.80 0.92 0.65 0.53
d_s 75 1.02 1.16 1.46 1.68 1.26 0.94
d_s 90 1.86 2.06 2.55 2.91 2.27 1.73
d_s 95 2.68 2.86 3.60 4.08 3.24 2.51
d_s 99 5.49 5.73 8.37 9.54 7.05 5.09
d_z 1 0.01 0.01 0.01 0.01 0.01 0.01
d_z 5 0.04 0.04 0.05 0.05 0.04 0.04
d_z 10 0.08 0.08 0.09 0.10 0.07 0.07
d_z 25 0.16 0.17 0.20 0.24 0.17 0.15
d_z 50 0.28 0.32 0.41 0.47 0.33 0.27
d_z 75 0.52 0.59 0.75 0.86 0.64 0.48
d_z 90 0.94 1.05 1.31 1.50 1.16 0.87
d_z 95 1.36 1.46 1.84 2.10 1.66 1.27
d_z 99 2.83 2.95 4.36 4.95 3.60 2.59
abs_r 1 0.01 0.01 0.01 0.01 0.01 0.01
abs_r 5 0.06 0.06 0.06 0.05 0.06 0.05
abs_r 10 0.11 0.11 0.11 0.09 0.11 0.09
abs_r 25 0.19 0.21 0.20 0.20 0.19 0.17
abs_r 50 0.31 0.33 0.33 0.35 0.32 0.30
abs_r 75 0.48 0.50 0.50 0.53 0.49 0.46
abs_r 90 0.66 0.67 0.67 0.74 0.66 0.63
abs_r 95 0.77 0.77 0.79 0.85 0.76 0.74
abs_r 99 0.93 0.92 0.93 0.97 0.93 0.92
peta2 1 0.00 0.00 0.00 0.00 0.00 0.00
peta2 5 0.00 0.00 0.00 0.01 0.00 0.00
peta2 10 0.01 0.01 0.01 0.02 0.01 0.01
peta2 25 0.02 0.04 0.04 0.06 0.03 0.02
peta2 50 0.07 0.11 0.13 0.16 0.10 0.07
peta2 75 0.20 0.26 0.31 0.39 0.27 0.18
peta2 90 0.43 0.50 0.57 0.65 0.53 0.38
peta2 95 0.61 0.65 0.72 0.79 0.70 0.55
peta2 99 0.87 0.89 0.91 0.93 0.91 0.81
R2 1 0.00 0.00 0.00 0.00 0.00 0.00
R2 5 0.00 0.00 0.01 0.01 0.01 0.01
R2 10 0.01 0.01 0.01 0.02 0.01 0.01
R2 25 0.03 0.05 0.05 0.08 0.04 0.04
R2 50 0.11 0.13 0.12 0.20 0.12 0.12
R2 75 0.25 0.30 0.27 0.39 0.26 0.27
R2 90 0.48 0.51 0.46 0.62 0.45 0.43
R2 95 0.64 0.64 0.59 0.75 0.59 0.52
R2 99 0.95 0.80 0.86 0.91 0.91 0.73
abs_OR 1 1.00 1.00 1.01 1.01 1.01 1.00
abs_OR 5 1.03 1.03 1.04 1.03 1.04 1.03
abs_OR 10 1.06 1.06 1.10 1.07 1.08 1.08
abs_OR 25 1.25 1.23 1.30 1.23 1.26 1.30
abs_OR 50 1.71 1.71 1.82 1.79 1.72 1.79
abs_OR 75 2.61 2.71 2.91 3.36 2.70 2.80
abs_OR 90 4.64 4.98 5.56 7.27 5.00 5.18
abs_OR 95 7.08 7.94 9.43 14.79 8.86 8.40
abs_OR 99 23.66 24.75 39.32 72.74 33.33 23.47
chi2 1 0.06 0.03 0.03 0.01 0.04 0.05
chi2 5 1.00 0.51 0.55 0.24 0.63 1.00
chi2 10 2.28 1.42 1.59 0.80 1.88 2.24
chi2 25 6.40 4.90 5.32 3.79 6.07 6.03
chi2 50 23.40 13.33 14.99 10.67 19.20 18.18
chi2 75 175.85 62.48 64.27 37.84 118.93 90.40
chi2 90 761.99 348.78 321.33 168.85 636.18 450.36
chi2 95 1571.09 866.00 768.67 449.24 1387.13 946.78
chi2 99 5286.28 4386.75 3533.51 2569.91 5867.32 3723.77
B 1 -0.62 -4.82 -0.82 -3.82 -1.97 -0.42
B 5 0.00 -0.09 0.00 -0.04 -0.13 0.00
B 10 0.02 0.01 0.02 0.01 0.01 0.02
B 25 0.10 0.06 0.09 0.08 0.08 0.09
B 50 0.29 0.28 0.28 0.35 0.24 0.26
B 75 0.74 0.99 0.97 1.25 0.60 0.74
B 90 2.11 3.37 2.88 4.16 1.81 2.15
B 95 4.92 7.48 6.18 9.89 4.30 4.48
B 99 39.71 30.81 28.42 73.16 38.14 19.65
stdB 1 -0.21 -0.53 -0.37 -1.98 -0.44 -0.28
stdB 5 0.01 0.00 0.00 0.00 -0.09 0.01
stdB 10 0.04 0.02 0.03 0.02 0.02 0.03
stdB 25 0.12 0.09 0.10 0.11 0.11 0.10
stdB 50 0.24 0.22 0.21 0.26 0.22 0.20
stdB 75 0.45 0.42 0.39 0.58 0.39 0.38
stdB 90 0.81 1.00 0.79 1.89 0.62 0.71
stdB 95 1.77 2.34 1.74 4.63 0.87 1.42
stdB 99 15.04 13.68 12.11 47.85 6.40 9.05
abs_stdB 1 0.00 0.00 0.00 0.00 0.00 0.00
abs_stdB 5 0.02 0.02 0.02 0.02 0.03 0.02
abs_stdB 10 0.05 0.04 0.05 0.04 0.06 0.05
abs_stdB 25 0.13 0.11 0.11 0.13 0.12 0.11
abs_stdB 50 0.24 0.23 0.22 0.28 0.23 0.21
abs_stdB 75 0.45 0.44 0.40 0.63 0.40 0.39
abs_stdB 90 0.83 1.08 0.83 2.11 0.64 0.73
abs_stdB 95 1.80 2.59 1.91 5.80 0.90 1.48
abs_stdB 99 15.81 15.13 14.36 49.40 7.16 9.44

Ridge plots by subfield

library(ggridges)

data_effectsizes_possible |>
  count(type)
## # A tibble: 18 Ă— 2
##    type           n
##    <chr>      <int>
##  1 B         104679
##  2 OR         43885
##  3 R2          7693
##  4 Wald        5941
##  5 abs_OR     43868
##  6 abs_r     130650
##  7 abs_rho     3135
##  8 abs_stdB  143581
##  9 chi2      185020
## 10 d_native   23089
## 11 d_s       454687
## 12 d_z       454687
## 13 logOR      43885
## 14 peta2    1219293
## 15 r         130650
## 16 rho         3135
## 17 sqrtR2      8150
## 18 stdB      143581
data_effectsizes_possible |>
  filter(type == "d_native") |>
  group_by(type) |>
  filter(estimate <= quantile(estimate, .99, na.rm = TRUE)) |>
  ggplot(aes(x = estimate, y = subfield, fill = subfield)) +
  geom_density_ridges(alpha = 1) +
  theme_linedraw() +
  scale_x_continuous(breaks = breaks_pretty(n = 8)) +
  labs(x = "Cohen's d native",
       y = "") +
  scale_fill_viridis_d() +
  theme(legend.position = "none")

data_effectsizes_possible |>
  filter(type == "d_s") |>
  group_by(type) |>
  filter(estimate <= quantile(estimate, .99, na.rm = TRUE)) |>
  ggplot(aes(x = estimate, y = subfield, fill = subfield)) +
  geom_density_ridges(alpha = 1) +
  theme_linedraw() +
  scale_x_continuous(breaks = breaks_pretty(n = 8)) +
  labs(x = "Cohen's d_s",
       y = "") +
  scale_fill_viridis_d() +
  theme(legend.position = "none")

data_effectsizes_possible |>
  filter(type == "d_z") |>
  group_by(type) |>
  filter(estimate <= quantile(estimate, .99, na.rm = TRUE)) |>
  ggplot(aes(x = estimate, y = subfield, fill = subfield)) +
  geom_density_ridges(alpha = 1) +
  theme_linedraw() +
  scale_x_continuous(breaks = breaks_pretty(n = 8)) +
  labs(x = "Cohen's d_s",
       y = "") +
  scale_fill_viridis_d() +
  theme(legend.position = "none")

Plot distributions

IS THIS TRIMMING THINGS WEIRDLY? WHERE IS THE ABSOLUTE SCORING IN THE BELOW?

plot_es <- function(data, x, trim_lower = 0, trim_upper = 1, binwidth = 0.1, xlab, title, subtitle) {
  data_subset <- data |>
    filter(type == x)
  
  # plot limits
  p1 <- quantile(data_subset$estimate, trim_lower, na.rm = TRUE)
  p99 <- quantile(data_subset$estimate, trim_upper, na.rm = TRUE)
  
  ggplot(data_subset, aes(x = estimate)) +
    geom_histogram(binwidth = binwidth, boundary = 0) +
    theme_linedraw() +
    scale_x_continuous(limits = c(p1, p99), breaks = scales::breaks_pretty(n = 10)) +
    scale_y_continuous(breaks = scales::breaks_pretty(n = 6)) +
    labs(title = title, 
         subtitle = subtitle, 
         x = xlab,
         y = "Count")
}

p_d_native <- 
  plot_es(data_effectsizes_possible, "d_native", trim_upper = 0.99,
          xlab = expression("Cohen's "*italic(d)),
          title = expression("Absolute Cohen's "*italic(d)),
          subtitle = "0–99th percentile range")

p_d_s <- 
  plot_es(data_effectsizes_possible, "d_s", trim_upper = 0.99,
          xlab = expression("Cohen's "*italic(d)[s]),
          title = expression("Absolute Cohen's "*italic(d)[s]*" estimated from "*italic(t)*"-test"),
          subtitle = "0–99th percentile range")

p_d_z <- 
  plot_es(data_effectsizes_possible, "d_z", trim_upper = 0.99,
          xlab = expression("Cohen's "*italic(d)[z]),
          title = expression("Absolute Cohen's "*italic(d)[z]*" estimated from "*italic(t)*"-test"),
          subtitle = "0–99th percentile range")

p_peta2 <- 
  plot_es(data_effectsizes_possible, "peta2", trim_lower = 0.01, trim_upper = 0.99, binwidth = 0.01,
          xlab = expression(italic(eta)[p]^2),
          title = expression(italic(eta)[p]^2*" estimated from "*italic(F)*"-test"),
          subtitle = "1–99th percentile range")

p_abs_r <- 
  plot_es(data_effectsizes_possible, "abs_r", binwidth = 0.1,
          xlab = expression("Pearson's "*italic(r)),
          title = expression("Absolute Pearson's "*italic(r)),
          subtitle = "0–100th percentile range") + 
  coord_cartesian(xlim = c(-1, 1))

# data_effectsizes_possible |>
#   mutate(r_out_of_bounds = case_when(r < -1 ~ TRUE,
#                                      r > 1 ~ TRUE,
#                                      TRUE ~ FALSE)) |>
#   summarize(percent_r_out_of_bounds = mean(r_out_of_bounds)*100)

p_abs_rho <- 
  plot_es(data_effectsizes_possible, "rho", binwidth = 0.1,
          xlab = expression(italic(rho)),
          title = expression("Absolute "*italic(rho)),
          subtitle = "0–100th percentile range") + 
  coord_cartesian(xlim = c(-1, 1))

p_sqrtR2 <- 
  plot_es(data_effectsizes_possible, "sqrtR2", binwidth = 0.1,
          xlab = expression("sqrt R"^2),
          title = expression("sqrt R"^2),
          subtitle = "0–100th percentile range") + 
  coord_cartesian(xlim = c(-1, 1))

p_R2 <- 
  plot_es(data_effectsizes_possible, "R2", binwidth = 0.1,
          xlab = expression("R"^2),
          title = expression("R"^2),
          subtitle = "0–100th percentile range") + 
  coord_cartesian(xlim = c(-1, 1))

# dat_es |>
#   mutate(R2_out_of_bounds = case_when(R2 < -1 ~ TRUE,
#                                       R2 > 1 ~ TRUE,
#                                       TRUE ~ FALSE)) |>
#   summarize(percent_R2_out_of_bounds = mean(R2_out_of_bounds)*100)

p_stdB <- 
  plot_es(data_effectsizes_possible, "stdB", trim_lower = 0.01, trim_upper = 0.95, binwidth = 0.01,
          xlab = expression(beta),
          title = expression(beta),
          subtitle = "1–95th percentile range")

p_B <- 
  plot_es(data_effectsizes_possible, "B", trim_lower = 0.01, trim_upper = 0.95, binwidth = 0.1,
          xlab = expression("B"),
          title = expression("B"),
          subtitle = "1–95th percentile range")

p_wald <- 
  plot_es(data_effectsizes_possible, "Wald", trim_lower = 0, trim_upper = 0.95, binwidth = 1,
          xlab = expression("Wald"),
          title = expression("Wald"),
          subtitle = "1–95th percentile range")

p_chi2 <- 
  plot_es(data_effectsizes_possible, "chi2", trim_lower = 0, trim_upper = 0.9, binwidth = 5,
          xlab = expression(chi^2),
          title = expression(chi^2),
          subtitle = "0–90th percentile range of positive values") + 
  coord_cartesian(xlim = c(0, NA))

p_OR <- 
  plot_es(data_effectsizes_possible, "OR", trim_lower = 0.01, trim_upper = 0.98,
          xlab = expression("OR"),
          title = expression("OR"),
          subtitle = "1–98th percentile range")

p_abs_OR <- 
  plot_es(data_effectsizes_possible, "abs_OR", trim_upper = 0.98,
          xlab = expression("Absolute OR"),
          title = expression("Absolute OR"),
          subtitle = "0–98th percentile range")

p_logOR <- 
  plot_es(data_effectsizes_possible, "logOR", trim_lower = 0.01, trim_upper = 0.99,
          xlab = expression("log-odds"),
          title = expression("log-odds"),
          subtitle = "1–99th percentile range")

# plot_es(data_effectsizes_possible, z, trim_lower = 0.01, trim_upper = 0.98,
#         xlab = expression("z-score"),
#         title = expression("z-score"),
#         subtitle = "1–98th percentile range") +
#   geom_vline(xintercept = 1.96, color = "pink", linetype = "dashed")
#
# plot_es(dat_p, p_val, trim_lower = 0, trim_upper = 1, binwidth = 0.001,
#         xlab = expression(italic(p)*" value"),
#         title = expression(italic(p)*" value"),
#         subtitle = "Between 0 and .1") +
#   coord_cartesian(xlim = c(0, 0.1))
# 
# plot_es(dat_p, p_implied, trim_lower = 0, trim_upper = 1, binwidth = 0.001,
#         xlab = expression("Implied "*italic(p)*" value"),
#         title = expression("Implied "*italic(p)*" value"),
#         subtitle = "Between 0 and .1") +
#   coord_cartesian(xlim = c(0, 0.1))

Combined Cohen’s d plots

p_d_native + coord_cartesian(xlim = c(0,8)) +
  p_d_s + coord_cartesian(xlim = c(0,8)) +
  p_d_z + coord_cartesian(xlim = c(0,8)) +
  plot_layout(ncol = 1)

Individual plots

p_abs_r

p_peta2 +
  geom_vline(xintercept = .01, linetype = "dashed", color = "blue") +
  geom_vline(xintercept = .06, linetype = "dashed", color = "blue") +
  geom_vline(xintercept = .14, linetype = "dashed", color = "blue")

p_R2

p_abs_OR

p_chi2

p_B

p_stdB

Quantile regression

quantile_regression_and_plot <- function(data, es_type, label){
  dat_for_reg <- data |> 
    filter(type == es_type) |>
    mutate(estimate = round_half_up(estimate, 2)) |>
    count(subfield, estimate)
  
  # fit quantile regressions at multiple quantiles
  #fit_05 <- rq(estimate ~ 0 + subfield, tau = 0.05, weights = n, method = "fn", data = dat_for_reg)
  fit_10 <- rq(estimate ~ 0 + subfield, tau = 0.10, weights = n, method = "fn", data = dat_for_reg)
  fit_25 <- rq(estimate ~ 0 + subfield, tau = 0.25, weights = n, method = "fn", data = dat_for_reg)
  fit_50 <- rq(estimate ~ 0 + subfield, tau = 0.50, weights = n, method = "fn", data = dat_for_reg)
  fit_75 <- rq(estimate ~ 0 + subfield, tau = 0.75, weights = n, method = "fn", data = dat_for_reg)
  fit_90 <- rq(estimate ~ 0 + subfield, tau = 0.90, weights = n, method = "fn", data = dat_for_reg)
  fit_95 <- rq(estimate ~ 0 + subfield, tau = 0.95, weights = n, method = "fn", data = dat_for_reg)
  fit_99 <- rq(estimate ~ 0 + subfield, tau = 0.99, weights = n, method = "fn", data = dat_for_reg)
  
  # wrangle and plot
  res <- bind_rows(
    # summary(fit_05, se = "nid")$coefficients |>
    #   as.data.frame() |>
    #   rownames_to_column(var = "subfield") |>
    #   mutate(percentile = 5),
    summary(fit_10, se = "nid")$coefficients |>
      as.data.frame() |>
      rownames_to_column(var = "subfield") |>
      mutate(percentile = 10),
    summary(fit_25, se = "nid")$coefficients |>
      as.data.frame() |>
      rownames_to_column(var = "subfield") |>
      mutate(percentile = 25),
    summary(fit_50, se = "nid")$coefficients |>
      as.data.frame() |>
      rownames_to_column(var = "subfield") |>
      mutate(percentile = 50),
    summary(fit_75, se = "nid")$coefficients |>
      as.data.frame() |>
      rownames_to_column(var = "subfield") |>
      mutate(percentile = 75),
    summary(fit_90, se = "nid")$coefficients |>
      as.data.frame() |>
      rownames_to_column(var = "subfield") |>
      mutate(percentile = 90),
    summary(fit_95, se = "nid")$coefficients |>
      as.data.frame() |>
      rownames_to_column(var = "subfield") |>
      mutate(percentile = 95),
    summary(fit_99, se = "nid")$coefficients |>
      as.data.frame() |>
      rownames_to_column(var = "subfield") |>
      mutate(percentile = 99)
  ) |>
    mutate(subfield = str_remove(subfield, "subfield"),
           percentile = as.factor(percentile)) |>
    rename(estimate = Value,
           se = `Std. Error`) |>
    mutate(subfield = fct_relevel(subfield,
                                  "Social Psychology",
                                  "Applied Psychology",     
                                  "Clinical Psychology",
                                  "Developmental and Educational Psychology",           
                                  "Experimental and Cognitive Psychology",          
                                  "General Psychology"))
  
  # ggplot(res, aes(estimate, subfield, color = percentile)) +
  #   geom_linerangeh(aes(xmin = estimate - se*1.96, xmax = estimate + se*1.96),
  #                   position = position_dodge(width = 0.75)) +
  #   geom_point(position = position_dodge(width = 0.75)) +
  #   theme_linedraw() +
  #   ylab("") +
  #   scale_x_continuous(name = label, breaks = scales::breaks_pretty(n = 8)) +
  #   guides(color = guide_legend(reverse = TRUE)) 
  
  plot <- res |>
    filter(percentile %in% c(10, 25, 50, 75, 90, 95)) |>
    ggplot(aes(estimate, percentile, color = subfield)) +
    geom_linerangeh(aes(xmin = estimate - se*1.96, xmax = estimate + se*1.96),
                    position = position_dodge(width = 0.75)) +
    geom_point(position = position_dodge(width = 0.75)) +
    theme_linedraw() +
    scale_x_continuous(name = label, breaks = scales::breaks_pretty(n = 8)) +
    ylab("Percentile") +
    guides(color = guide_legend(reverse = TRUE)) 
  
  return(list(res = res,
              plot = plot))
}

quantile_regression_and_plot(data_effectsizes_possible, "d_native", "Cohen's d")
## $res
##                                    subfield estimate          se    t value
## 1                        Applied Psychology     0.12  0.02025505  5.9244477
## 2                       Clinical Psychology     0.13  0.03296069  3.9440926
## 3  Developmental and Educational Psychology     0.14  0.02745149  5.0999045
## 4     Experimental and Cognitive Psychology     0.16  0.03445154  4.6442044
## 5                        General Psychology     0.14  0.02730476  5.1273117
## 6                         Social Psychology     0.10  0.02036129  4.9112800
## 7                        Applied Psychology     0.26  0.03382380  7.6868952
## 8                       Clinical Psychology     0.30  0.03494658  8.5845307
## 9  Developmental and Educational Psychology     0.30  0.03735200  8.0316974
## 10    Experimental and Cognitive Psychology     0.35  0.04154976  8.4236348
## 11                       General Psychology     0.29  0.03715235  7.8056982
## 12                        Social Psychology     0.23  0.03022329  7.6100243
## 13                       Applied Psychology     0.49  0.04207754 11.6451674
## 14                      Clinical Psychology     0.56  0.05589554 10.0186892
## 15 Developmental and Educational Psychology     0.57  0.05159615 11.0473369
## 16    Experimental and Cognitive Psychology     0.66  0.05623287 11.7369071
## 17                       General Psychology     0.56  0.04861928 11.5180654
## 18                        Social Psychology     0.45  0.04229824 10.6387412
## 19                       Applied Psychology     0.86  0.08268040 10.4014979
## 20                      Clinical Psychology     0.99  0.08736645 11.3315804
## 21 Developmental and Educational Psychology     1.02  0.08149528 12.5160618
## 22    Experimental and Cognitive Psychology     1.15  0.08629565 13.3262793
## 23                       General Psychology     1.03  0.10470207  9.8374371
## 24                        Social Psychology     0.87  0.10955944  7.9408948
## 25                       Applied Psychology     1.34  0.14684914  9.1250111
## 26                      Clinical Psychology     1.47  0.16009477  9.1820616
## 27 Developmental and Educational Psychology     1.57  0.18300996  8.5787679
## 28    Experimental and Cognitive Psychology     1.83  0.22824147  8.0178244
## 29                       General Psychology     1.81  0.25939520  6.9777699
## 30                        Social Psychology     1.45  0.18325162  7.9126175
## 31                       Applied Psychology     1.78  0.32984245  5.3965157
## 32                      Clinical Psychology     2.05  0.37920809  5.4060028
## 33 Developmental and Educational Psychology     2.20  0.44974185  4.8916951
## 34    Experimental and Cognitive Psychology     2.56  0.42841871  5.9754627
## 35                       General Psychology     2.97  0.91623412  3.2415296
## 36                        Social Psychology     1.97  0.34362966  5.7329160
## 37                       Applied Psychology     4.75  9.13642929  0.5198968
## 38                      Clinical Psychology     6.28  6.50262859  0.9657633
## 39 Developmental and Educational Psychology     7.30  7.02872614  1.0385950
## 40    Experimental and Cognitive Psychology     6.93  6.46797322  1.0714330
## 41                       General Psychology    13.06 22.78075401  0.5732909
## 42                        Social Psychology     4.01  2.26281086  1.7721322
##                   Pr(>|t|) percentile
## 1  0.000000003630188594173         10
## 2  0.000082623657119418326         10
## 3  0.000000369052054915997         10
## 4  0.000003616414766760556         10
## 5  0.000000319735750542449         10
## 6  0.000000971794473336729         10
## 7  0.000000000000022648550         25
## 8  0.000000000000000000000         25
## 9  0.000000000000001554312         25
## 10 0.000000000000000000000         25
## 11 0.000000000000009103829         25
## 12 0.000000000000040412118         25
## 13 0.000000000000000000000         50
## 14 0.000000000000000000000         50
## 15 0.000000000000000000000         50
## 16 0.000000000000000000000         50
## 17 0.000000000000000000000         50
## 18 0.000000000000000000000         50
## 19 0.000000000000000000000         75
## 20 0.000000000000000000000         75
## 21 0.000000000000000000000         75
## 22 0.000000000000000000000         75
## 23 0.000000000000000000000         75
## 24 0.000000000000003108624         75
## 25 0.000000000000000000000         90
## 26 0.000000000000000000000         90
## 27 0.000000000000000000000         90
## 28 0.000000000000001776357         90
## 29 0.000000000003959499395         90
## 30 0.000000000000003996803         90
## 31 0.000000075287193368467         95
## 32 0.000000071458190920026         95
## 33 0.000001072524674849973         95
## 34 0.000000002671314724978         95
## 35 0.001206757165709504420         95
## 36 0.000000011237439867529         95
## 37 0.603188125879168701715         99
## 38 0.334269370021937461956         99
## 39 0.299107878668044113724         99
## 40 0.284092945128494367424         99
## 41 0.566506629588456878110         99
## 42 0.076511752624263795752         99
## 
## $plot

quantile_regression_and_plot(data_effectsizes_possible, "d_s", "Cohen's ds from t-test")
## $res
##                                    subfield estimate         se   t value
## 1                        Applied Psychology     0.15 0.02714137  5.526618
## 2                       Clinical Psychology     0.16 0.03155475  5.070552
## 3  Developmental and Educational Psychology     0.18 0.03351159  5.371276
## 4     Experimental and Cognitive Psychology     0.20 0.03642663  5.490489
## 5                        General Psychology     0.15 0.03046962  4.922936
## 6                         Social Psychology     0.14 0.02791879  5.014544
## 7                        Applied Psychology     0.31 0.03021548 10.259641
## 8                       Clinical Psychology     0.33 0.03278682 10.065021
## 9  Developmental and Educational Psychology     0.40 0.04145246  9.649609
## 10    Experimental and Cognitive Psychology     0.47 0.04634562 10.141196
## 11                       General Psychology     0.33 0.03618208  9.120536
## 12                        Social Psychology     0.30 0.03626111  8.273326
## 13                       Applied Psychology     0.55 0.04832835 11.380484
## 14                      Clinical Psychology     0.63 0.05244109 12.013481
## 15 Developmental and Educational Psychology     0.80 0.06298633 12.701168
## 16    Experimental and Cognitive Psychology     0.92 0.06486183 14.183998
## 17                       General Psychology     0.65 0.05787167 11.231748
## 18                        Social Psychology     0.53 0.04142719 12.793530
## 19                       Applied Psychology     1.02 0.11079011  9.206598
## 20                      Clinical Psychology     1.16 0.11709577  9.906421
## 21 Developmental and Educational Psychology     1.46 0.12021213 12.145197
## 22    Experimental and Cognitive Psychology     1.68 0.13131259 12.793899
## 23                       General Psychology     1.26 0.11759177 10.715035
## 24                        Social Psychology     0.94 0.10360317  9.073081
## 25                       Applied Psychology     1.86 0.26462838  7.028725
## 26                      Clinical Psychology     2.06 0.23350514  8.822075
## 27 Developmental and Educational Psychology     2.55 0.27367800  9.317519
## 28    Experimental and Cognitive Psychology     2.91 0.28100544 10.355672
## 29                       General Psychology     2.28 0.28641447  7.960492
## 30                        Social Psychology     1.73 0.25824879  6.698967
## 31                       Applied Psychology     2.68 0.50627074  5.293610
## 32                      Clinical Psychology     2.86 0.44845249  6.377487
## 33 Developmental and Educational Psychology     3.60 0.50272196  7.161016
## 34    Experimental and Cognitive Psychology     4.08 0.54850606  7.438386
## 35                       General Psychology     3.24 0.49076828  6.601894
## 36                        Social Psychology     2.51 0.44637595  5.623063
## 37                       Applied Psychology     5.49 2.45074491  2.240135
## 38                      Clinical Psychology     5.73 2.46505521  2.324492
## 39 Developmental and Educational Psychology     8.38 3.57819406  2.341964
## 40    Experimental and Cognitive Psychology     9.55 3.61446409  2.642162
## 41                       General Psychology     7.05 2.67906596  2.631514
## 42                        Social Psychology     5.09 1.82511641  2.788863
##                   Pr(>|t|) percentile
## 1  0.000000033773718044472         10
## 2  0.000000406436506894536         10
## 3  0.000000080595131013439         10
## 4  0.000000041431314601326         10
## 5  0.000000871277638925250         10
## 6  0.000000544135407398727         10
## 7  0.000000000000000000000         25
## 8  0.000000000000000000000         25
## 9  0.000000000000000000000         25
## 10 0.000000000000000000000         25
## 11 0.000000000000000000000         25
## 12 0.000000000000000000000         25
## 13 0.000000000000000000000         50
## 14 0.000000000000000000000         50
## 15 0.000000000000000000000         50
## 16 0.000000000000000000000         50
## 17 0.000000000000000000000         50
## 18 0.000000000000000000000         50
## 19 0.000000000000000000000         75
## 20 0.000000000000000000000         75
## 21 0.000000000000000000000         75
## 22 0.000000000000000000000         75
## 23 0.000000000000000000000         75
## 24 0.000000000000000000000         75
## 25 0.000000000002272848576         90
## 26 0.000000000000000000000         90
## 27 0.000000000000000000000         90
## 28 0.000000000000000000000         90
## 29 0.000000000000001998401         90
## 30 0.000000000022552182344         90
## 31 0.000000123421508346766         95
## 32 0.000000000191005211647         95
## 33 0.000000000000879074591         95
## 34 0.000000000000113686838         95
## 35 0.000000000043442138775         95
## 36 0.000000019453775923495         95
## 37 0.025112143860383850935         99
## 38 0.020126484801269217684         99
## 39 0.019209352361759357564         99
## 40 0.008255452747476965669         99
## 41 0.008518424287752734969         99
## 42 0.005303053180681915890         99
## 
## $plot

quantile_regression_and_plot(data_effectsizes_possible, "d_z", "Cohen's dz from t-test")
## $res
##                                    subfield estimate         se  t value
## 1                        Applied Psychology     0.08 0.02479629 3.226289
## 2                       Clinical Psychology     0.08 0.02301171 3.476491
## 3  Developmental and Educational Psychology     0.09 0.02711581 3.319096
## 4     Experimental and Cognitive Psychology     0.10 0.02522774 3.963891
## 5                        General Psychology     0.07 0.02223441 3.148273
## 6                         Social Psychology     0.07 0.01702150 4.112446
## 7                        Applied Psychology     0.16 0.01840320 8.694142
## 8                       Clinical Psychology     0.17 0.02277163 7.465429
## 9  Developmental and Educational Psychology     0.20 0.03018703 6.625362
## 10    Experimental and Cognitive Psychology     0.24 0.03276596 7.324676
## 11                       General Psychology     0.17 0.02750305 6.181133
## 12                        Social Psychology     0.15 0.02526587 5.936862
## 13                       Applied Psychology     0.28 0.03434096 8.153528
## 14                      Clinical Psychology     0.32 0.03642223 8.785843
## 15 Developmental and Educational Psychology     0.41 0.04425927 9.263596
## 16    Experimental and Cognitive Psychology     0.47 0.04866431 9.658002
## 17                       General Psychology     0.33 0.03959094 8.335241
## 18                        Social Psychology     0.27 0.03030875 8.908320
## 19                       Applied Psychology     0.52 0.07974718 6.520607
## 20                      Clinical Psychology     0.59 0.07970071 7.402695
## 21 Developmental and Educational Psychology     0.75 0.08552992 8.768861
## 22    Experimental and Cognitive Psychology     0.86 0.09361702 9.186364
## 23                       General Psychology     0.64 0.08800976 7.271921
## 24                        Social Psychology     0.48 0.07579761 6.332653
## 25                       Applied Psychology     0.94 0.19010492 4.944638
## 26                      Clinical Psychology     1.05 0.16875255 6.222128
## 27 Developmental and Educational Psychology     1.31 0.20336861 6.441506
## 28    Experimental and Cognitive Psychology     1.50 0.20812884 7.207074
## 29                       General Psychology     1.16 0.20010970 5.796820
## 30                        Social Psychology     0.87 0.18723649 4.646530
## 31                       Applied Psychology     1.37 0.36219104 3.782534
## 32                      Clinical Psychology     1.46 0.32703981 4.464288
## 33 Developmental and Educational Psychology     1.84 0.36930990 4.982266
## 34    Experimental and Cognitive Psychology     2.10 0.41081990 5.111729
## 35                       General Psychology     1.66 0.35988082 4.612638
## 36                        Social Psychology     1.27 0.33262295 3.818137
## 37                       Applied Psychology     2.84 1.81010735 1.568968
## 38                      Clinical Psychology     2.95 1.78012304 1.657189
## 39 Developmental and Educational Psychology     4.36 2.59246281 1.681798
## 40    Experimental and Cognitive Psychology     4.95 2.82424846 1.752679
## 41                       General Psychology     3.60 2.02280896 1.779703
## 42                        Social Psychology     2.59 1.43264653 1.807843
##                    Pr(>|t|) percentile
## 1  0.0012625828731929189530         10
## 2  0.0005125755661539166397         10
## 3  0.0009099039976663281237         10
## 4  0.0000748222195823267100         10
## 5  0.0016525690771183043637         10
## 6  0.0000398112125403748962         10
## 7  0.0000000000000000000000         25
## 8  0.0000000000000981437154         25
## 9  0.0000000000384923204422         25
## 10 0.0000000000002797762022         25
## 11 0.0000000006897606930067         25
## 12 0.0000000031121683008450         25
## 13 0.0000000000000004440892         50
## 14 0.0000000000000000000000         50
## 15 0.0000000000000000000000         50
## 16 0.0000000000000000000000         50
## 17 0.0000000000000000000000         50
## 18 0.0000000000000000000000         50
## 19 0.0000000000773183739256         75
## 20 0.0000000000001569855357         75
## 21 0.0000000000000000000000         75
## 22 0.0000000000000000000000         75
## 23 0.0000000000004125588760         75
## 24 0.0000000002632591922236         75
## 25 0.0000007891725244402181         90
## 26 0.0000000005326672436468         90
## 27 0.0000000001300173302354         90
## 28 0.0000000000006619149673         90
## 29 0.0000000071957093616959         90
## 30 0.0000034670490496324646         90
## 31 0.0001571508889752770699         95
## 32 0.0000082198464756988443         95
## 33 0.0000006507746248551882         95
## 34 0.0000003317688088699811         95
## 35 0.0000040805414616151836         95
## 36 0.0001361783425619655929         95
## 37 0.1167221395142845619119         99
## 38 0.0975474155798852216037         99
## 39 0.0926737277113329760425         99
## 40 0.0797217603012183584354         99
## 41 0.0751884968393823349686         99
## 42 0.0706942333431048730574         99
## 
## $plot

quantile_regression_and_plot(data_effectsizes_possible, "abs_r", "Absolute r")
## $res
##                                    subfield estimate         se   t value
## 1                        Applied Psychology     0.11 0.02641905  4.163662
## 2                       Clinical Psychology     0.11 0.03033243  3.626482
## 3  Developmental and Educational Psychology     0.11 0.02575230  4.271463
## 4     Experimental and Cognitive Psychology     0.09 0.02869779  3.136130
## 5                        General Psychology     0.11 0.02606077  4.220904
## 6                         Social Psychology     0.09 0.02660593  3.382705
## 7                        Applied Psychology     0.19 0.02287549  8.305832
## 8                       Clinical Psychology     0.21 0.02894397  7.255396
## 9  Developmental and Educational Psychology     0.20 0.02866908  6.976156
## 10    Experimental and Cognitive Psychology     0.20 0.03042684  6.573143
## 11                       General Psychology     0.19 0.02578887  7.367518
## 12                        Social Psychology     0.17 0.02632835  6.456918
## 13                       Applied Psychology     0.31 0.03397490  9.124382
## 14                      Clinical Psychology     0.33 0.03086308 10.692386
## 15 Developmental and Educational Psychology     0.33 0.03311746  9.964532
## 16    Experimental and Cognitive Psychology     0.35 0.03406649 10.274026
## 17                       General Psychology     0.32 0.03351415  9.548206
## 18                        Social Psychology     0.30 0.03421523  8.768026
## 19                       Applied Psychology     0.48 0.04901892  9.792138
## 20                      Clinical Psychology     0.50 0.04502396 11.105198
## 21 Developmental and Educational Psychology     0.50 0.04459635 11.211680
## 22    Experimental and Cognitive Psychology     0.53 0.05172564 10.246370
## 23                       General Psychology     0.49 0.04513053 10.857395
## 24                        Social Psychology     0.46 0.04607461  9.983806
## 25                       Applied Psychology     0.66 0.06164445 10.706560
## 26                      Clinical Psychology     0.67 0.06066486 11.044285
## 27 Developmental and Educational Psychology     0.67 0.06438075 10.406837
## 28    Experimental and Cognitive Psychology     0.74 0.06559495 11.281356
## 29                       General Psychology     0.66 0.06080845 10.853754
## 30                        Social Psychology     0.63 0.06208050 10.148114
## 31                       Applied Psychology     0.77 0.07300699 10.546935
## 32                      Clinical Psychology     0.77 0.06671492 11.541646
## 33 Developmental and Educational Psychology     0.79 0.07624766 10.360974
## 34    Experimental and Cognitive Psychology     0.85 0.06311960 13.466498
## 35                       General Psychology     0.76 0.07201690 10.553079
## 36                        Social Psychology     0.74 0.08402676  8.806718
## 37                       Applied Psychology     0.93 0.07915761 11.748713
## 38                      Clinical Psychology     0.92 0.07789972 11.810056
## 39 Developmental and Educational Psychology     0.93 0.06313080 14.731319
## 40    Experimental and Cognitive Psychology     0.97 0.04020089 24.128817
## 41                       General Psychology     0.93 0.07808410 11.910235
## 42                        Social Psychology     0.92 0.08696459 10.579019
##                    Pr(>|t|) percentile
## 1  0.0000359104096989693033         10
## 2  0.0003117420167653150997         10
## 3  0.0000225768237307466535         10
## 4  0.0017957120880454091605         10
## 5  0.0000281022088639559797         10
## 6  0.0007644916583455785286         10
## 7  0.0000000000000006661338         25
## 8  0.0000000000012434497876         25
## 9  0.0000000000080442319472         25
## 10 0.0000000001071256416907         25
## 11 0.0000000000005777600620         25
## 12 0.0000000002207625193762         25
## 13 0.0000000000000000000000         50
## 14 0.0000000000000000000000         50
## 15 0.0000000000000000000000         50
## 16 0.0000000000000000000000         50
## 17 0.0000000000000000000000         50
## 18 0.0000000000000000000000         50
## 19 0.0000000000000000000000         75
## 20 0.0000000000000000000000         75
## 21 0.0000000000000000000000         75
## 22 0.0000000000000000000000         75
## 23 0.0000000000000000000000         75
## 24 0.0000000000000000000000         75
## 25 0.0000000000000000000000         90
## 26 0.0000000000000000000000         90
## 27 0.0000000000000000000000         90
## 28 0.0000000000000000000000         90
## 29 0.0000000000000000000000         90
## 30 0.0000000000000000000000         90
## 31 0.0000000000000000000000         95
## 32 0.0000000000000000000000         95
## 33 0.0000000000000000000000         95
## 34 0.0000000000000000000000         95
## 35 0.0000000000000000000000         95
## 36 0.0000000000000000000000         95
## 37 0.0000000000000000000000         99
## 38 0.0000000000000000000000         99
## 39 0.0000000000000000000000         99
## 40 0.0000000000000000000000         99
## 41 0.0000000000000000000000         99
## 42 0.0000000000000000000000         99
## 
## $plot

quantile_regression_and_plot(data_effectsizes_possible, "peta2", "peta2") # throws error, needs fixing 
## $res
##                                    subfield estimate          se    t value
## 1                        Applied Psychology     0.01 0.007497950  1.3336979
## 2                       Clinical Psychology     0.01 0.012560465  0.7961488
## 3  Developmental and Educational Psychology     0.01 0.005848786  1.7097565
## 4     Experimental and Cognitive Psychology     0.02 0.010509878  1.9029716
## 5                        General Psychology     0.01 0.006550580  1.5265824
## 6                         Social Psychology     0.01 0.007760665  1.2885494
## 7                        Applied Psychology     0.02 0.016694379  1.1980080
## 8                       Clinical Psychology     0.04 0.018644134  2.1454469
## 9  Developmental and Educational Psychology     0.04 0.017363298  2.3037098
## 10    Experimental and Cognitive Psychology     0.06 0.019500430  3.0768553
## 11                       General Psychology     0.03 0.014585035  2.0569028
## 12                        Social Psychology     0.02 0.011519548  1.7361793
## 13                       Applied Psychology     0.07 0.026701932  2.6215331
## 14                      Clinical Psychology     0.11 0.033548040  3.2788800
## 15 Developmental and Educational Psychology     0.13 0.038186279  3.4043642
## 16    Experimental and Cognitive Psychology     0.16 0.040547114  3.9460268
## 17                       General Psychology     0.10 0.038880214  2.5720023
## 18                        Social Psychology     0.07 0.027637522  2.5327886
## 19                       Applied Psychology     0.20 0.083471895  2.3960161
## 20                      Clinical Psychology     0.26 0.074576536  3.4863513
## 21 Developmental and Educational Psychology     0.31 0.082475666  3.7586844
## 22    Experimental and Cognitive Psychology     0.39 0.085801890  4.5453544
## 23                       General Psychology     0.27 0.087510211  3.0853542
## 24                        Social Psychology     0.18 0.069117286  2.6042689
## 25                       Applied Psychology     0.43 0.172452844  2.4934352
## 26                      Clinical Psychology     0.50 0.125604654  3.9807442
## 27 Developmental and Educational Psychology     0.57 0.122824509  4.6407676
## 28    Experimental and Cognitive Psychology     0.65 0.105098782  6.1846578
## 29                       General Psychology     0.53 0.150663334  3.5177769
## 30                        Social Psychology     0.38 0.162973967  2.3316607
## 31                       Applied Psychology     0.61 0.213120012  2.8622371
## 32                      Clinical Psychology     0.65 0.156194413  4.1614805
## 33 Developmental and Educational Psychology     0.72 0.131610279  5.4706973
## 34    Experimental and Cognitive Psychology     0.79 0.099576792  7.9335755
## 35                       General Psychology     0.70 0.162918160  4.2966358
## 36                        Social Psychology     0.55 0.211396232  2.6017493
## 37                       Applied Psychology     0.87 0.245079251  3.5498721
## 38                      Clinical Psychology     0.89 0.174485234  5.1007182
## 39 Developmental and Educational Psychology     0.91 0.124263367  7.3231558
## 40    Experimental and Cognitive Psychology     0.93 0.077293721 12.0320252
## 41                       General Psychology     0.91 0.139173681  6.5385926
## 42                        Social Psychology     0.81 0.304399690  2.6609751
##                 Pr(>|t|) percentile
## 1  0.1828089322840733555         10
## 2  0.4262604075108600288         10
## 3  0.0878279398725378968         10
## 4  0.0575226138546194310         10
## 5  0.1273918248017316124         10
## 6  0.1980514334455880654         10
## 7  0.2313869102114560761         25
## 8  0.0323177932497431541         25
## 9  0.0215798352834997154         25
## 10 0.0021873064075570436         25
## 11 0.0401273351472526407         25
## 12 0.0830454571720915524         25
## 13 0.0089755340326722610         50
## 14 0.0011024925585678691         50
## 15 0.0007074255792196560         50
## 16 0.0000888621628361008         50
## 17 0.0103507091870844725         50
## 18 0.0115696259350213104         50
## 19 0.0168796279877485578         75
## 20 0.0005254344775638131         75
## 21 0.0001875042996382081         75
## 22 0.0000066351957048738         75
## 23 0.0021267110194758132         75
## 24 0.0094350832759300118         75
## 25 0.0129196375776954309         90
## 26 0.0000771173345492926         90
## 27 0.0000042655972998240         90
## 28 0.0000000011516780862         90
## 29 0.0004680881981227181         90
## 30 0.0200486442094831574         90
## 31 0.0043533820028096581         95
## 32 0.0000362455001583495         95
## 33 0.0000000658953569488         95
## 34 0.0000000000000104361         95
## 35 0.0000202285214205844         95
## 36 0.0095038831758742504         95
## 37 0.0004156013608507259         99
## 38 0.0000004544932576955         99
## 39 0.0000000000007833734         99
## 40 0.0000000000000000000         99
## 41 0.0000000001329625299         99
## 42 0.0079999960594459019         99
## 
## $plot

quantile_regression_and_plot(data_effectsizes_possible, "R2", "R2")
## $res
##                                    subfield  estimate          se   t value
## 1                        Applied Psychology 0.0100000 0.006312746  1.584097
## 2                       Clinical Psychology 0.0100000 0.005802359  1.723437
## 3  Developmental and Educational Psychology 0.0100000 0.005772551  1.732336
## 4     Experimental and Cognitive Psychology 0.0200000 0.014404906  1.388416
## 5                        General Psychology 0.0100000 0.005976178  1.673310
## 6                         Social Psychology 0.0100000 0.005959635  1.677955
## 7                        Applied Psychology 0.0300000 0.014055493  2.134397
## 8                       Clinical Psychology 0.0500000 0.021531841  2.322142
## 9  Developmental and Educational Psychology 0.0500000 0.017136981  2.917667
## 10    Experimental and Cognitive Psychology 0.0700000 0.021381930  3.273792
## 11                       General Psychology 0.0400000 0.017741486  2.254603
## 12                        Social Psychology 0.0400000 0.013269282  3.014481
## 13                       Applied Psychology 0.1100000 0.037468584  2.935793
## 14                      Clinical Psychology 0.1300000 0.037883166  3.431603
## 15 Developmental and Educational Psychology 0.1200000 0.034262319  3.502390
## 16    Experimental and Cognitive Psychology 0.2000000 0.039899378  5.012609
## 17                       General Psychology 0.1200000 0.035470918  3.383053
## 18                        Social Psychology 0.1200000 0.038910004  3.084040
## 19                       Applied Psychology 0.2500000 0.065592306  3.811423
## 20                      Clinical Psychology 0.3027526 0.081820996  3.700183
## 21 Developmental and Educational Psychology 0.2700000 0.059979435  4.501543
## 22    Experimental and Cognitive Psychology 0.3900000 0.067709448  5.759905
## 23                       General Psychology 0.2600000 0.062095202  4.187119
## 24                        Social Psychology 0.2700000 0.053077128  5.086937
## 25                       Applied Psychology 0.4800000 0.132567686  3.620792
## 26                      Clinical Psychology 0.5100000 0.110244841  4.626067
## 27 Developmental and Educational Psychology 0.4600000 0.103905934  4.427081
## 28    Experimental and Cognitive Psychology 0.6200000 0.086429438  7.173482
## 29                       General Psychology 0.4500000 0.113547381  3.963103
## 30                        Social Psychology 0.4300000 0.083434894  5.153719
## 31                       Applied Psychology 0.6400000 0.194384749  3.292439
## 32                      Clinical Psychology 0.6400000 0.103078098  6.208884
## 33 Developmental and Educational Psychology 0.5900000 0.123058273  4.794477
## 34    Experimental and Cognitive Psychology 0.7500000 0.125107207  5.994858
## 35                       General Psychology 0.5900000 0.162787788  3.624350
## 36                        Social Psychology 0.5200000 0.134104624  3.877570
## 37                       Applied Psychology 0.9600000 0.134120683  7.157733
## 38                      Clinical Psychology 0.8100000 0.246553996  3.285284
## 39 Developmental and Educational Psychology 0.8600000 0.235853256  3.646335
## 40    Experimental and Cognitive Psychology 0.9100000 0.078473532 11.596267
## 41                       General Psychology 0.9200000 0.205105279  4.485501
## 42                        Social Psychology 0.7300000 0.214277411  3.406799
##                Pr(>|t|) percentile
## 1  0.113776158591470944         10
## 2  0.085400572552026599         10
## 3  0.083803257669567532         10
## 4  0.165601491916319121         10
## 5  0.094864177740357603         10
## 6  0.093953254050930024         10
## 7  0.033274655847866264         25
## 8  0.020608331613446218         25
## 9  0.003678274347020949         25
## 10 0.001131332200966062         25
## 11 0.024571159998310943         25
## 12 0.002699117627202208         25
## 13 0.003473351315522955         50
## 14 0.000647509540810276         50
## 15 0.000500573873442711         50
## 16 0.000000736192478756         50
## 17 0.000770568109081715         50
## 18 0.002149998777364992         50
## 19 0.000154612213986383         75
## 20 0.000238268180870804         75
## 21 0.000008322818373152         75
## 22 0.000000014373861656         75
## 23 0.000033149912034958         75
## 24 0.000000508032120816         75
## 25 0.000322294666398770         90
## 26 0.000004703788670790         90
## 27 0.000011633948709733         90
## 28 0.000000000002513767         90
## 29 0.000084260132959368         90
## 30 0.000000362616124461         90
## 31 0.001060347086306646         95
## 32 0.000000001088054535         95
## 33 0.000002129239898618         95
## 34 0.000000003798532155         95
## 35 0.000317997614870169         95
## 36 0.000118944747262706         95
## 37 0.000000000002791101         99
## 38 0.001087081101116993         99
## 39 0.000292620874845273         99
## 40 0.000000000000000000         99
## 41 0.000008949113199375         99
## 42 0.000707888231883391         99
## 
## $plot

quantile_regression_and_plot(data_effectsizes_possible, "abs_OR", "Absolute OR")
## $res
##                                    subfield  estimate          se   t value
## 1                        Applied Psychology  1.060000  0.01657495 63.951923
## 2                       Clinical Psychology  1.060000  0.01641569 64.572385
## 3  Developmental and Educational Psychology  1.100000  0.02506432 43.887083
## 4     Experimental and Cognitive Psychology  1.070000  0.02158799 49.564585
## 5                        General Psychology  1.080000  0.02133674 50.616924
## 6                         Social Psychology  1.080000  0.02060641 52.410883
## 7                        Applied Psychology  1.250000  0.04510557 27.712762
## 8                       Clinical Psychology  1.230000  0.04467216 27.533926
## 9  Developmental and Educational Psychology  1.300000  0.04464509 29.118543
## 10    Experimental and Cognitive Psychology  1.230000  0.04005519 30.707630
## 11                       General Psychology  1.260000  0.04750680 26.522520
## 12                        Social Psychology  1.300000  0.04970409 26.154788
## 13                       Applied Psychology  1.710000  0.09509944 17.981179
## 14                      Clinical Psychology  1.710000  0.09418564 18.155633
## 15 Developmental and Educational Psychology  1.820000  0.08925985 20.389907
## 16    Experimental and Cognitive Psychology  1.790000  0.13774305 12.995211
## 17                       General Psychology  1.720000  0.09181528 18.733266
## 18                        Social Psychology  1.790000  0.08561488 20.907581
## 19                       Applied Psychology  2.610000  0.18862331 13.837102
## 20                      Clinical Psychology  2.710000  0.23960523 11.310270
## 21 Developmental and Educational Psychology  2.910000  0.23066630 12.615627
## 22    Experimental and Cognitive Psychology  3.364052  0.41256849  8.153924
## 23                       General Psychology  2.700000  0.23357509 11.559452
## 24                        Social Psychology  2.800000  0.21028655 13.315165
## 25                       Applied Psychology  4.650000  0.71272295  6.524274
## 26                      Clinical Psychology  4.980000  0.82625623  6.027186
## 27 Developmental and Educational Psychology  5.560000  0.89730277  6.196348
## 28    Experimental and Cognitive Psychology  7.300000  1.40861676  5.182389
## 29                       General Psychology  5.000000  0.85346952  5.858440
## 30                        Social Psychology  5.180000  0.74183070  6.982725
## 31                       Applied Psychology  7.100000  1.36102102  5.216672
## 32                      Clinical Psychology  7.970000  1.80157797  4.423900
## 33 Developmental and Educational Psychology  9.450000  2.68345847  3.521575
## 34    Experimental and Cognitive Psychology 14.790000  5.61838745  2.632428
## 35                       General Psychology  8.860000  2.48905629  3.559582
## 36                        Social Psychology  8.400000  1.95847398  4.289054
## 37                       Applied Psychology 23.830000 18.57373947  1.282994
## 38                      Clinical Psychology 24.950000 20.20170639  1.235044
## 39 Developmental and Educational Psychology 39.330000 22.49678895  1.748249
## 40    Experimental and Cognitive Psychology 74.960000 41.27046987  1.816311
## 41                       General Psychology 33.330000 32.69138521  1.019535
## 42                        Social Psychology 23.490000 14.70010959  1.597947
##                    Pr(>|t|) percentile
## 1  0.0000000000000000000000         10
## 2  0.0000000000000000000000         10
## 3  0.0000000000000000000000         10
## 4  0.0000000000000000000000         10
## 5  0.0000000000000000000000         10
## 6  0.0000000000000000000000         10
## 7  0.0000000000000000000000         25
## 8  0.0000000000000000000000         25
## 9  0.0000000000000000000000         25
## 10 0.0000000000000000000000         25
## 11 0.0000000000000000000000         25
## 12 0.0000000000000000000000         25
## 13 0.0000000000000000000000         50
## 14 0.0000000000000000000000         50
## 15 0.0000000000000000000000         50
## 16 0.0000000000000000000000         50
## 17 0.0000000000000000000000         50
## 18 0.0000000000000000000000         50
## 19 0.0000000000000000000000         75
## 20 0.0000000000000000000000         75
## 21 0.0000000000000000000000         75
## 22 0.0000000000000004440892         75
## 23 0.0000000000000000000000         75
## 24 0.0000000000000000000000         75
## 25 0.0000000000752327089515         90
## 26 0.0000000017905497085025         90
## 27 0.0000000006251994477680         90
## 28 0.0000002278580848447120         90
## 29 0.0000000049775841226563         90
## 30 0.0000000000032818192608         90
## 31 0.0000001896737353845879         95
## 32 0.0000099036951501929593         95
## 33 0.0004328996293869735723         95
## 34 0.0085043029282827475868         95
## 35 0.0003749683870624131998         95
## 36 0.0000182889808431063727         95
## 37 0.1995548008565468656172         99
## 38 0.2168732884834621010839         99
## 39 0.0804834710748378867606         99
## 40 0.0693838005129014945283         99
## 41 0.3079995559645656300063         99
## 42 0.1101192036667897333757         99
## 
## $plot

#quantile_regression_and_plot(data_effectsizes_possible, "chi2", "chi2")
#quantile_regression_and_plot(data_effectsizes_possible, "B", "B")
#quantile_regression_and_plot(data_effectsizes_possible, "stdB", "")
quantile_regression_and_plot(data_effectsizes_possible, "abs_stdB", "Absolute std. B") 
## $res
##                                    subfield estimate          se   t value
## 1                        Applied Psychology     0.05  0.02696946 1.8539486
## 2                       Clinical Psychology     0.04  0.01795737 2.2274972
## 3  Developmental and Educational Psychology     0.05  0.01885801 2.6513930
## 4     Experimental and Cognitive Psychology     0.04  0.01610431 2.4838068
## 5                        General Psychology     0.06  0.01893733 3.1683450
## 6                         Social Psychology     0.05  0.01927288 2.5943187
## 7                        Applied Psychology     0.13  0.02668809 4.8710862
## 8                       Clinical Psychology     0.11  0.02665504 4.1267995
## 9  Developmental and Educational Psychology     0.11  0.02799190 3.9297081
## 10    Experimental and Cognitive Psychology     0.13  0.02390445 5.4383189
## 11                       General Psychology     0.12  0.02108223 5.6919976
## 12                        Social Psychology     0.11  0.02145579 5.1268221
## 13                       Applied Psychology     0.24  0.03735064 6.4255932
## 14                      Clinical Psychology     0.23  0.03730438 6.1654963
## 15 Developmental and Educational Psychology     0.22  0.03357887 6.5517392
## 16    Experimental and Cognitive Psychology     0.28  0.03823412 7.3233016
## 17                       General Psychology     0.23  0.02810009 8.1850272
## 18                        Social Psychology     0.21  0.03431760 6.1193097
## 19                       Applied Psychology     0.45  0.06672023 6.7445808
## 20                      Clinical Psychology     0.44  0.07996512 5.5023993
## 21 Developmental and Educational Psychology     0.40  0.06997975 5.7159390
## 22    Experimental and Cognitive Psychology     0.63  0.14940279 4.2167887
## 23                       General Psychology     0.40  0.05621928 7.1149970
## 24                        Social Psychology     0.39  0.06436736 6.0589715
## 25                       Applied Psychology     0.83  0.30565393 2.7154894
## 26                      Clinical Psychology     1.08  0.54769992 1.9718827
## 27 Developmental and Educational Psychology     0.83  0.34887323 2.3790877
## 28    Experimental and Cognitive Psychology     2.11  0.90184155 2.3396571
## 29                       General Psychology     0.64  0.11362399 5.6326132
## 30                        Social Psychology     0.73  0.25054749 2.9136193
## 31                       Applied Psychology     1.80  1.24568259 1.4449909
## 32                      Clinical Psychology     2.59  1.59505098 1.6237726
## 33 Developmental and Educational Psychology     1.91  1.28420460 1.4873019
## 34    Experimental and Cognitive Psychology     5.80  4.74910780 1.2212820
## 35                       General Psychology     0.90  0.47098660 1.9108824
## 36                        Social Psychology     1.48  0.97007674 1.5256525
## 37                       Applied Psychology    15.81 28.85536527 0.5479050
## 38                      Clinical Psychology    15.18 27.83647240 0.5453277
## 39 Developmental and Educational Psychology    14.42 30.15718261 0.4781614
## 40    Experimental and Cognitive Psychology    49.46 40.74245504 1.2139671
## 41                       General Psychology     7.16 18.91010873 0.3786335
## 42                        Social Psychology     9.55 18.80420821 0.5078650
##                    Pr(>|t|) percentile
## 1  0.0638032445341996101718         10
## 2  0.0259568008917718806572         10
## 3  0.0080404245957799158617         10
## 4  0.0130299732420353642226         10
## 5  0.0015419993085714622794         10
## 6  0.0095045245482150431116         10
## 7  0.0000011428626613962933         25
## 8  0.0000373613414139661870         25
## 9  0.0000861555265028179917         25
## 10 0.0000000562502455725422         25
## 11 0.0000000132456414725368         25
## 12 0.0000003053763144578170         25
## 13 0.0000000001431033069821         50
## 14 0.0000000007557725556495         50
## 15 0.0000000000623761042817         50
## 16 0.0000000000002791100684         50
## 17 0.0000000000000004440892         50
## 18 0.0000000010087828350436         50
## 19 0.0000000000170201630567         75
## 20 0.0000000392639991630972         75
## 21 0.0000000115191736149711         75
## 22 0.0000252025048994575229         75
## 23 0.0000000000012714274078         75
## 24 0.0000000014665453296203         75
## 25 0.0066397105391351463055         90
## 26 0.0486760508661348012538         90
## 27 0.0173915161306288368337         90
## 28 0.0193391882706013262805         90
## 29 0.0000000186847628480535         90
## 30 0.0035879174646997746834         90
## 31 0.1485208511558906430139         95
## 32 0.1044851231820742576417         95
## 33 0.1369958652283056466104         95
## 34 0.2220347618924325416856         95
## 35 0.0560747657441984515003         95
## 36 0.1271573984650182786993         95
## 37 0.5837806858853216152028         99
## 38 0.5855515908649571166222         99
## 39 0.6325555002520606429073         99
## 40 0.2248155570196779251546         99
## 41 0.7049755637107022465671         99
## 42 0.6115695864430894523878         99
## 
## $plot

Session info

sessionInfo()
## R version 4.5.0 (2025-04-11)
## Platform: aarch64-apple-darwin20
## Running under: macOS Sequoia 15.6
## 
## Matrix products: default
## BLAS:   /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/lib/libRblas.0.dylib 
## LAPACK: /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.1
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## time zone: Europe/Zurich
## tzcode source: internal
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] ggstance_0.3.7   quantreg_6.1     SparseM_1.84-2   kableExtra_1.4.0
##  [5] knitr_1.50       ggridges_0.5.6   patchwork_1.3.0  rlang_1.1.6     
##  [9] janitor_2.2.1    scales_1.4.0     lubridate_1.9.4  forcats_1.0.0   
## [13] stringr_1.5.1    dplyr_1.1.4      purrr_1.1.0      readr_2.1.5     
## [17] tidyr_1.3.1      tibble_3.3.0     ggplot2_3.5.2    tidyverse_2.0.0 
## 
## loaded via a namespace (and not attached):
##  [1] utf8_1.2.6         sass_0.4.10        generics_0.1.4     xml2_1.3.8        
##  [5] lattice_0.22-6     stringi_1.8.7      hms_1.1.3          digest_0.6.37     
##  [9] magrittr_2.0.3     evaluate_1.0.3     grid_4.5.0         timechange_0.3.0  
## [13] RColorBrewer_1.1-3 fastmap_1.2.0      Matrix_1.7-3       jsonlite_2.0.0    
## [17] survival_3.8-3     viridisLite_0.4.2  textshaping_1.0.1  jquerylib_0.1.4   
## [21] cli_3.6.5          splines_4.5.0      withr_3.0.2        cachem_1.1.0      
## [25] yaml_2.3.10        tools_4.5.0        MatrixModels_0.5-4 tzdb_0.5.0        
## [29] vctrs_0.6.5        R6_2.6.1           lifecycle_1.0.4    snakecase_0.11.1  
## [33] MASS_7.3-65        ragg_1.4.0         pkgconfig_2.0.3    pillar_1.11.0     
## [37] bslib_0.9.0        gtable_0.3.6       glue_1.8.0         systemfonts_1.2.3 
## [41] xfun_0.52          tidyselect_1.2.1   rstudioapi_0.17.1  farver_2.1.2      
## [45] htmltools_0.5.8.1  rmarkdown_2.29     svglite_2.2.1      compiler_4.5.0
LS0tCnRpdGxlOiAiRXhwbG9yZSBCb2dkYW4ncyAoMjAyNSkgZWZmZWN0IHNpemUgZGF0YSIKYXV0aG9yOiAiSWFuIEh1c3NleSIKZGF0ZTogImByIGZvcm1hdChTeXMudGltZSgpLCAnJWQgJUIsICVZJylgIgpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIGNvZGVfZG93bmxvYWQ6IHRydWUKICAgIGNvZGVfZm9sZGluZzogaGlkZQogICAgaGlnaGxpZ2h0OiBoYWRkb2NrCiAgICB0aGVtZTogZmxhdGx5CiAgICB0b2M6IHllcwogICAgdG9jX2Zsb2F0OiB5ZXMKLS0tCgojIFRPRE8KCi0gaW4gcXVhbnRpbGUgcmVncmVzc2lvbiwgNXRoIHBlcmNlbnRpbGUgdGhyb3dzIGVycm9ycyBmb3IgcGV0YTIgc28gSSd2ZSByZW1vdmVkIGl0IGZvciB0aGUgbW9tZW50LgotIFJlLXJ1bm5pbmcgdGhlIGRhdGEgcHJvY2Vzc2luZyB3b3VsZCBhZGQgYWJzX0IgdG8gdGhlIGRhdGFzZXQgYW5kIGFsbG93IGl0IHRvIGJlIGluY2x1ZGVkCi0gbG9vayBpbnRvIHRoZSBpbXBvc3NpYmxlIGVmZmVjdCBzaXplIC0gd2hhdCBwcm9wb3J0aW9uIGFyZSBleHRyYWN0aW9uIGVycm9ycyB2cyBhY3R1YWxseSBpbXBvc3NpYmxlIHZhbHVlcz8KLSBBZGQgcmFuZG9tIHNhbXBsaW5nIGFuZCBjYXRlZ29yaXphdGlvbiBvZiB3aGF0IHNvcnQgb2YgZWZmZWN0cyBvciBjb21wYXJpc29ucyBnaXZlIHJpc2UgdG8gd2hhdCBtYWduaXRkdWUgb2YgZWZmZWN0IHNpemVzPyAKLSBDbGFyaWZ5IHNvdXJjZSBvZiBlYWNoIEVTIAogIC0gU2F2ZSBqb3VybmFsIGxpc3QgdG8gZGlzay4KICAtIGVnIHdhcyBwZXRhMiBleHBsaWNpdGx5IHJlcG9ydGVkIG9yIHJlY2FsY3VsYXRlZCBmcm9tIEYgdGVzdD8gaXMgaXQgZGVmaW5pdGVseSBwZXRhMiBhbmQgbm90IGV0YTI/IHdlcmUgciB2YWx1ZXMgaW4gdGV4dCBvciBhbHNvIHRhYmxlcz8KLSBDb25zaWRlciBhZGRpbmcgdGhlIGN1aWpwZXJzIDIwMjUgbXVsdGkgZG9tYWluIG1ldGEgYW5hbHlzaXMgZGF0YSB0byBhbnN3ZXIgdGhlIHF1ZXN0aW9uIG9mIGRpc3RyaWJ1dGlvbiBvZiBjb2hlbidzIGQgaW4gYSBzcGVjaWZpYyBhcmVhLCBpLmUuLCBSQ1RzIG9mIGNsaW5pY2FsIGludGVydmVudGlvbnMuCgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KCiMgc2V0IGRlZmF1bHQgY2h1bmsgb3B0aW9ucwprbml0cjo6b3B0c19jaHVuayRzZXQobWVzc2FnZSA9IEZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgd2FybmluZyA9IEZBTFNFKQoKIyBkaXNhYmxlIHNjaWVudGlmaWMgbm90YXRpb24Kb3B0aW9ucyhzY2lwZW4gPSA5OTkpIAoKYGBgCgojIERlcGVuZGVuY2llcwoKYGBge3J9CgpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShzY2FsZXMpCmxpYnJhcnkoamFuaXRvcikKbGlicmFyeShybGFuZykKbGlicmFyeShwYXRjaHdvcmspCmxpYnJhcnkoZ2dyaWRnZXMpCmxpYnJhcnkoa25pdHIpCmxpYnJhcnkoa2FibGVFeHRyYSkKbGlicmFyeShxdWFudHJlZykKbGlicmFyeShnZ3N0YW5jZSkKCmBgYAoKIyBMb2FkIGRhdGEKCmBgYHtyfQoKZGF0YV9lZmZlY3RzaXplcyA8LSByZWFkX3JkcygiLi4vZGF0YS9ib2dkYW4gMjAyNS9wcm9jZXNzZWQvZGF0YV9lZmZlY3RzaXplcy5yZHMiKQoKZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSA8LSBkYXRhX2VmZmVjdHNpemVzIHw+CiAgZmlsdGVyKHBvc3NpYmxlID09IFRSVUUpCgpgYGAKCiMgRGVzY3JpcHRpdmVzCgojIyBJbXBvc3NpYmxlIHZhbHVlcwoKRm9yIGJvdW5kZWQgZWZmZWN0IHNpemVzCgpgYGB7cn0KCmRhdGFfZWZmZWN0c2l6ZXMgfD4KICBmaWx0ZXIodHlwZSAlaW4lIGMoInBldGEyIiwgInIiLCAiYWJzX3IiLCAicmhvIiwgImFic19yaG8iLCAiUjIiLCAiT1IiKSkgfD4KICBncm91cF9ieSh0eXBlKSB8PgogIHN1bW1hcml6ZShuID0gbigpLAogICAgICAgICAgICBwZXJjZW50X2ltcG9zc2libGUgPSByb3VuZF9oYWxmX3VwKG1lYW4oIXBvc3NpYmxlKSoxMDAsIDMpLAogICAgICAgICAgICBuX2ltcG9zc2libGUgPSBzdW0oIXBvc3NpYmxlKSkgfD4KICBhcnJhbmdlKGRlc2MocGVyY2VudF9pbXBvc3NpYmxlKSkgfD4KICBrYWJsZSgpIHw+CiAga2FibGVfY2xhc3NpYyhmdWxsX3dpZHRoID0gRkFMU0UpCgpgYGAKCiMjIEFydGljbGVzIChieSBzdWJmaWVsZCkKCmBgYHtyfQoKZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSB8PgogIGRpc3RpbmN0KGRvaSwgLmtlZXBfYWxsID0gVFJVRSkgfD4KICBjb3VudCgpIHw+CiAga2FibGUoKSB8PgogIGthYmxlX2NsYXNzaWMoZnVsbF93aWR0aCA9IEZBTFNFKQoKZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSB8PgogIGRpc3RpbmN0KGRvaSwgLmtlZXBfYWxsID0gVFJVRSkgfD4KICBjb3VudChzdWJmaWVsZCkgfD4KICBrYWJsZSgpIHw+CiAga2FibGVfY2xhc3NpYyhmdWxsX3dpZHRoID0gRkFMU0UpCgpgYGAKCiMjIEpvdXJuYWxzCgpgYGB7cn0KCiMgZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSB8PgojICAgZGlzdGluY3QoZG9pLCAua2VlcF9hbGwgPSBUUlVFKSB8PgojICAgY291bnQoam91cm5hbCkgfD4KIyAgIGthYmxlKCkgfD4KIyAgIGthYmxlX2NsYXNzaWMoZnVsbF93aWR0aCA9IEZBTFNFKQoKZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSB8PgogIGRpc3RpbmN0KGpvdXJuYWwpIHw+CiAgY291bnQoKSB8PgogIGthYmxlKCkgfD4KICBrYWJsZV9jbGFzc2ljKGZ1bGxfd2lkdGggPSBGQUxTRSkKCmBgYAoKIyMgWWVhcnMKCmBgYHtyfQoKZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSB8PgogIGRpc3RpbmN0KHllYXIpIHw+CiAgYXJyYW5nZShkZXNjKHllYXIpKSB8PgogIHNsaWNlKDEsIG4oKSkgfD4KICBrYWJsZSgpIHw+CiAga2FibGVfY2xhc3NpYyhmdWxsX3dpZHRoID0gRkFMU0UpCgpgYGAKCiMjIEZyZXF1ZW5jeSBieSBlZmZlY3Qgc2l6ZSB0eXBlCgpgYGB7cn0KCmRhdGFfZWZmZWN0c2l6ZXNfcG9zc2libGUgfD4KICBjb3VudCh0eXBlKSB8PgogIGFycmFuZ2UoZGVzYyhuKSkgfD4KICBrYWJsZSgpIHw+CiAga2FibGVfY2xhc3NpYyhmdWxsX3dpZHRoID0gRkFMU0UpCgpgYGAKCiMgUGVyY2VudGlsZXMKCmBgYHtyfQoKZGF0YV9wZXJjZW50aWxlc19sb25nIDwtIGRhdGFfZWZmZWN0c2l6ZXNfcG9zc2libGUgfD4KICBmaWx0ZXIodHlwZSAlaW4lIHVuaXF1ZSh0eXBlKSkgfD4KICBncm91cF9ieSh0eXBlKSB8PgogIHN1bW1hcmlzZSgKICAgIGFjcm9zcygKICAgICAgLmNvbHMgPSBldmVyeXRoaW5nKCksCiAgICAgIC5mbnMgPSBsaXN0LCAKICAgICAgLm5hbWVzID0gInsuY29sfV9saXN0IgogICAgKSwgIyBqdXN0IGZvciBjbGFyaXR5IOKAlCB3ZSBvbmx5IGNhcmUgYWJvdXQgZXN0aW1hdGUgY29sdW1uCiAgICAuZ3JvdXBzID0gImRyb3BfbGFzdCIKICApIHw+CiAgc2VsZWN0KHR5cGUsIGVzdGltYXRlID0gZXN0aW1hdGVfbGlzdCkgfD4KICB1bm5lc3QoZXN0aW1hdGUpIHw+CiAgZ3JvdXBfYnkodHlwZSkgfD4KICBzdW1tYXJpc2UoCiAgICBwZXJjZW50aWxlID0gYygxLCA1LCAxMCwgMjAsIDI1LCAzMCwgNDAsIDUwLCA2MCwgNzAsIDc1LCA4MCwgOTAsIDk1LCA5OSkgLyAxMDAsCiAgICB2YWx1ZSA9IG1hcF9kYmwocGVyY2VudGlsZSwgfiBxdWFudGlsZShlc3RpbWF0ZSwgcHJvYnMgPSAueCwgbmEucm0gPSBUUlVFKSksCiAgICAuZ3JvdXBzID0gImRyb3AiCiAgKSB8PgogIG11dGF0ZShwZXJjZW50aWxlID0gcGVyY2VudGlsZSAqIDEwMCkgCgpkYXRhX3BlcmNlbnRpbGVzIDwtIGRhdGFfcGVyY2VudGlsZXNfbG9uZyB8PgogIHBpdm90X3dpZGVyKG5hbWVzX2Zyb20gPSB0eXBlLCB2YWx1ZXNfZnJvbSA9IHZhbHVlKSB8PgogIHNlbGVjdChwZXJjZW50aWxlLAogICAgICAgICBkX25hdGl2ZSwgCiAgICAgICAgIGRfcywgCiAgICAgICAgIGRfeiwgCiAgICAgICAgIAogICAgICAgICBhYnNfciwgCiAgICAgICAgICNyLCAKICAgICAgICAgI3JobywgCiAgICAgICAgICNhYnNfcmhvLCAKICAgICAgICAgI3NxcnRSMiwKICAgICAgICAgCiAgICAgICAgIHBldGEyLCAKICAgICAgICAgUjIsIAogICAgICAgICAKICAgICAgICAgI09SLCAKICAgICAgICAgYWJzX09SLCAKICAgICAgICAgI2xvZ09SLCAKICAgICAgICAgCiAgICAgICAgIGNoaTIsIAogICAgICAgICAKICAgICAgICAgQiwgCiAgICAgICAgICNhYnNfQiwKICAgICAgICAgc3RkQiwKICAgICAgICAgYWJzX3N0ZEIpCiAgICAgICAgICNXYWxkCgpgYGAKCiMjIE92ZXJhbGwKCmBgYHtyfQoKZGF0YV9wZXJjZW50aWxlcyB8PgogIG11dGF0ZV9pZihpcy5udW1lcmljLCByb3VuZF9oYWxmX3VwLCBkaWdpdHMgPSAyKSB8PgogIGthYmxlKCkgfD4KICBrYWJsZV9jbGFzc2ljKGZ1bGxfd2lkdGggPSBGQUxTRSkKCiMgZGF0YV9wZXJjZW50aWxlcyB8PgojICAgcGl2b3RfbG9uZ2VyKGNvbCA9IC1wZXJjZW50aWxlLAojICAgICAgICAgICAgICAgIG5hbWVzX3RvID0gImVzdGltYXRvciIsCiMgICAgICAgICAgICAgICAgdmFsdWVzX3RvID0gImVzdGltYXRlIikgfD4KIyAgIGdncGxvdChhZXMoYXMuZmFjdG9yKHBlcmNlbnRpbGUpLCBlc3RpbWF0ZSkpICsKIyAgIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiLCB3aWR0aCA9IDAuOCkgKwojICAgdGhlbWVfbGluZWRyYXcoKSArCiMgICBmYWNldF93cmFwKH4gZXN0aW1hdG9yLCBzY2FsZXMgPSAiZnJlZSIpCiMKIyBkYXRhX3BlcmNlbnRpbGVzIHw+CiMgICBwaXZvdF9sb25nZXIoY29sID0gLXBlcmNlbnRpbGUsCiMgICAgICAgICAgICAgICAgbmFtZXNfdG8gPSAiZXN0aW1hdG9yIiwKIyAgICAgICAgICAgICAgICB2YWx1ZXNfdG8gPSAiZXN0aW1hdGUiKSB8PgojICAgbXV0YXRlKGVzdGltYXRvciA9IGZjdF9yZWxldmVsKGVzdGltYXRvciwgCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRfbmF0aXZlIiwgImRfcyIsICJkX3oiLCAKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWJzX3IiLCAiUjIiLCAicGV0YTIiLCAKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWJzX09SIikpIHw+CiMgICBmaWx0ZXIoZXN0aW1hdG9yICVpbiUgYygiZF9uYXRpdmUiLCAiZF9zIiwgImRfeiIsICJhYnNfT1IiLCAicGV0YTIiLCAiYWJzX3IiLCAiUjIiKSkgfD4KIyAgIGdncGxvdChhZXMoYXMuZmFjdG9yKHBlcmNlbnRpbGUpLCBlc3RpbWF0ZSkpICsKIyAgIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiLCB3aWR0aCA9IDAuOCkgKwojICAgdGhlbWVfbGluZWRyYXcoKSArCiMgICBmYWNldF93cmFwKH4gZXN0aW1hdG9yLCBzY2FsZXMgPSAiZnJlZSIpCgpgYGAKCiMjIyBQbG90CgpgYGB7cn0KCmRhdGFfcGVyY2VudGlsZXNfZm9yX3Bsb3QgPC0gZGF0YV9wZXJjZW50aWxlc19sb25nIHw+CiAgZmlsdGVyKHR5cGUgJWluJSBjKCJkX25hdGl2ZSIsIAogICAgICAgICAgICAgICAgICAgICAiZF9zIiwgCiAgICAgICAgICAgICAgICAgICAgICJkX3oiLCAKICAgICAgICAgICAgICAgICAgICAgImFic19yIiwKICAgICAgICAgICAgICAgICAgICAgInBldGEyIiwgCiAgICAgICAgICAgICAgICAgICAgICJSMiIsIAogICAgICAgICAgICAgICAgICAgICAiYWJzX09SIiwKICAgICAgICAgICAgICAgICAgICAgImFic19zdGRCIiwKICAgICAgICAgICAgICAgICAgICAgImNoaTIiKSkgfD4KICBtdXRhdGUodHlwZV9sYWIgPSBjYXNlX3doZW4oCiAgICB0eXBlID09ICJkX25hdGl2ZSIgfiAiXCJDb2hlbidzXCJ+J3wnKml0YWxpYyhkKSonfCd+JyhyZXBvcnRlZCknIiwKICAgIHR5cGUgPT0gImRfcyIgICAgICB+ICJcIkNvaGVuJ3NcIn4nfCcqaXRhbGljKGQpW3NdKid8J34nKGZyb20gdC10ZXN0KSciLAogICAgdHlwZSA9PSAiZF96IiAgICAgIH4gIlwiQ29oZW4nc1wifid8JyppdGFsaWMoZClbel0qJ3wnficoZnJvbSB0LXRlc3QpJyIsCiAgICB0eXBlID09ICJhYnNfciIgICAgfiAiXCJQZWFyc29uJ3NcIn4nfCcqaXRhbGljKHIpKid8JyIsCiAgICB0eXBlID09ICJwZXRhMiIgICAgfiAiZXRhW3BdXjIiLAogICAgdHlwZSA9PSAiUjIiICAgICAgIH4gIml0YWxpYyhSKV4yIiwKICAgIHR5cGUgPT0gImFic19PUiIgICB+ICJcInxPZGRzIFJhdGlvfFwiIiwKICAgIHR5cGUgPT0gImFic19zdGRCIiB+ICInfCcqaXRhbGljKGJldGEpKid8JyIsCiAgICB0eXBlID09ICJjaGkyIiAgICAgfiAiY2hpXjIiLAogICAgVFJVRSB+IHR5cGUKICApKSB8PgogIG11dGF0ZSh0eXBlX2xhYiA9IGZjdF9yZWxldmVsKAogICAgdHlwZV9sYWIsCiAgICAiXCJDb2hlbidzXCJ+J3wnKml0YWxpYyhkKSonfCd+JyhyZXBvcnRlZCknIiwKICAgICJcIkNvaGVuJ3NcIn4nfCcqaXRhbGljKGQpW3NdKid8J34nKGZyb20gdC10ZXN0KSciLAogICAgIlwiQ29oZW4nc1wifid8JyppdGFsaWMoZClbel0qJ3wnficoZnJvbSB0LXRlc3QpJyIsCiAgICAiXCJQZWFyc29uJ3NcIn4nfCcqaXRhbGljKHIpKid8JyIsCiAgICAiZXRhW3BdXjIiLAogICAgIml0YWxpYyhSKV4yIiwKICAgICJcInxPZGRzIFJhdGlvfFwiIiwKICAgICInfCcqaXRhbGljKGJldGEpKid8JyIsCiAgICAiY2hpXjIiCiAgKSkgfD4KICBkcm9wX25hKCkgCgpgYGAKCmBgYHtyIGZpZy5oZWlnaHQ9NCwgZmlnLndpZHRoPTZ9CgpsYWJzX21hcCA8LSBjKAogIGRfbmF0aXZlID0gIlwiQ29oZW4nc1wifmdyb3VwKCd8JyxpdGFsaWMoZCksJ3wnKX4nKHJlcG9ydGVkKSciLAogIGRfcyAgICAgID0gIlwiSW5kZXBlbmRlbnQgQ29oZW4nc1wifmdyb3VwKCd8JyxpdGFsaWMoZClbc10sJ3wnKX4nKHJlY2FsY3VsYXRlZCBmcm9tIHQtdGVzdCknIiwKICBkX3ogICAgICA9ICJcIkRlcGVuZGVudCBDb2hlbidzXCJ+Z3JvdXAoJ3wnLGl0YWxpYyhkKVt6XSwnfCcpficocmVjYWxjdWxhdGVkIGZyb20gdC10ZXN0KSciCikKCmxhYmVsX21hcF9wYXJzZWQgPC0gZnVuY3Rpb24obWFwKSB7CiAgZm9yY2UobWFwKQogIGZ1bmN0aW9uKHgpIHBhcnNlKHRleHQgPSB1bm5hbWUobWFwW3hdKSkKfQoKZGF0YV9wZXJjZW50aWxlc19mb3JfcGxvdCB8PgogIGZpbHRlcihwZXJjZW50aWxlIDwgOTkpIHw+CiAgZmlsdGVyKHN0cl9kZXRlY3QodHlwZSwgImRfIikpIHw+CiAgbXV0YXRlKHR5cGUgPSBmY3RfcmVsZXZlbCh0eXBlLCAiZF96IiwgImRfbmF0aXZlIiwgImRfcyIpKSB8PgogIGdncGxvdChhZXModmFsdWUsIHBlcmNlbnRpbGUsIGNvbG9yID0gdHlwZSkpICsgIAogIGdlb21fbGluZSgpICsKICBnZW9tX3BvaW50KCkgKwogIHNjYWxlX3lfY29udGludW91cygKICAgICNicmVha3MgPSBjKDEsIHNlcSg1LCA5NSwgNSksIDk5KSwgCiAgICBicmVha3MgPSBjKDEsIHNlcSg1LCA5NSwgNSkpLCAKICAgIG5hbWUgPSAiUGVyY2VudGlsZSIKICApICsKICBzY2FsZV94X2NvbnRpbnVvdXMoCiAgICBicmVha3MgPSBzY2FsZXM6OmJyZWFrc19wcmV0dHkobiA9IDgpLCAKICAgICNsaW1pdHMgPSBjKDAsIDEpLCAKICAgIG5hbWUgPSBleHByZXNzaW9uKCJDb2hlbidzIiB+IGdyb3VwKCJ8IiwgaXRhbGljKGQpLCAifCIpKQogICkgKwogIHRoZW1lX2xpbmVkcmF3KCkgKwogIHRoZW1lKAogICAgcGFuZWwuZ3JpZC5taW5vciA9IGVsZW1lbnRfYmxhbmsoKSwKICAgIHN0cmlwLnBsYWNlbWVudCA9ICJvdXRzaWRlIiwKICAgIHN0cmlwLmJhY2tncm91bmQgPSBlbGVtZW50X2JsYW5rKCksICAjIG5vIGZpbGwgb3IgYm94CiAgICBzdHJpcC50ZXh0ID0gZWxlbWVudF90ZXh0KGNvbG91ciA9ICJibGFjayIpLAogICAgbGVnZW5kLnBvc2l0aW9uID0gYygwLjY1LCAwLjMpCiAgKSArCiAgc2NhbGVfY29sb3VyX2Rpc2NyZXRlKAogICAgbmFtZSA9ICJNZXRob2QiLAogICAgYnJlYWtzID0gYygiZF96IiwgImRfbmF0aXZlIiwgImRfcyIpLCAgIyBkZXNpcmVkIGxlZ2VuZCBvcmRlcgogICAgI2JyZWFrcyA9IG5hbWVzKGxhYnNfbWFwKSwKICAgIGxhYmVscyA9IGxhYmVsX21hcF9wYXJzZWQobGFic19tYXApCiAgKQoKZ2dzYXZlKCJwbG90cy9wZXJjZW50aWxlc19ib2dkYW5fZC5wbmciLCB3aWR0aCA9IDYsIGhlaWdodCA9IDQsIGRwaSA9IDYwMCkKCmBgYAoKYGBge3IgZmlnLmhlaWdodD04LCBmaWcud2lkdGg9MTJ9CgpkYXRhX3BlcmNlbnRpbGVzX2Zvcl9wbG90IHw+CiAgZmlsdGVyKHBlcmNlbnRpbGUgPCA5OSkgfD4KICBmaWx0ZXIoIXN0cl9kZXRlY3QodHlwZSwgImRfIikpIHw+CiAgZ2dwbG90KGFlcyh2YWx1ZSwgcGVyY2VudGlsZSkpICsgIAogIGdlb21fbGluZSgpICsKICBnZW9tX3BvaW50KCkgKwogIHNjYWxlX3lfY29udGludW91cygKICAgICNicmVha3MgPSBjKDEsIHNlcSg1LCA5NSwgNSksIDk5KSwgCiAgICBicmVha3MgPSBjKDEsIHNlcSg1LCA5NSwgNSkpLCAKICAgIG5hbWUgPSAiUGVyY2VudGlsZSIKICApICsKICBzY2FsZV94X2NvbnRpbnVvdXMoCiAgICBicmVha3MgPSBzY2FsZXM6OmJyZWFrc19wcmV0dHkobiA9IDgpLCAKICAgICNsaW1pdHMgPSBjKDAsIDEpLCAKICAgIG5hbWUgPSAiRWZmZWN0IHNpemUiCiAgKSArCiAgdGhlbWVfbGluZWRyYXcoKSArCiAgdGhlbWUoCiAgICBwYW5lbC5ncmlkLm1pbm9yID0gZWxlbWVudF9ibGFuaygpLAogICAgc3RyaXAucGxhY2VtZW50ID0gIm91dHNpZGUiLAogICAgc3RyaXAuYmFja2dyb3VuZCA9IGVsZW1lbnRfYmxhbmsoKSwgICMgbm8gZmlsbCBvciBib3gKICAgIHN0cmlwLnRleHQgPSBlbGVtZW50X3RleHQoY29sb3VyID0gImJsYWNrIikKICAgICNsZWdlbmQucG9zaXRpb24gPSBjKDAuOCwgMC40KQogICkgKwogIGZhY2V0X3dyYXAofiB0eXBlX2xhYiwgCiAgICAgICAgICAgICBzY2FsZXMgPSAiZnJlZSIsIAogICAgICAgICAgICAgc3RyaXAucG9zaXRpb24gPSAiYm90dG9tIiwKICAgICAgICAgICAgIGxhYmVsbGVyID0gbGFiZWxfcGFyc2VkKQoKZ2dzYXZlKCJwbG90cy9wZXJjZW50aWxlc19ib2dkYW5fb3RoZXJzLnBuZyIsIHdpZHRoID0gMTIsIGhlaWdodCA9IDgsIGRwaSA9IDYwMCkKCmBgYAoKIyMgQnkgc3ViZmllbGQKCmBgYHtyfQoKIyBkYXRhX3BlcmNlbnRpbGVzX2J5X3N1YmZpZWxkIDwtIAojICAgZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSB8PgojICAgZmlsdGVyKHR5cGUgJWluJSB1bmlxdWUodHlwZSkpIHw+CiMgICBncm91cF9ieSh0eXBlLCBzdWJmaWVsZCkgfD4KIyAgIHN1bW1hcmlzZSgKIyAgICAgYWNyb3NzKAojICAgICAgIC5jb2xzID0gZXZlcnl0aGluZygpLAojICAgICAgIC5mbnMgPSBsaXN0LCAKIyAgICAgICAubmFtZXMgPSAiey5jb2x9X2xpc3QiCiMgICAgICksICMganVzdCBmb3IgY2xhcml0eSDigJQgd2Ugb25seSBjYXJlIGFib3V0IGVzdGltYXRlIGNvbHVtbgojICAgICAuZ3JvdXBzID0gImRyb3BfbGFzdCIKIyAgICkgfD4KIyAgIHNlbGVjdCh0eXBlLCBzdWJmaWVsZCwgZXN0aW1hdGUgPSBlc3RpbWF0ZV9saXN0KSB8PgojICAgdW5uZXN0KGVzdGltYXRlKSB8PgojICAgZ3JvdXBfYnkodHlwZSwgc3ViZmllbGQpIHw+CiMgICBzdW1tYXJpc2UoCiMgICAgIHBlcmNlbnRpbGUgPSBjKDEsIDUsIDEwLCAyNSwgNTAsIDc1LCA5MCwgOTUsIDk5KSAvIDEwMCwKIyAgICAgdmFsdWUgPSBtYXBfZGJsKHBlcmNlbnRpbGUsIH4gcXVhbnRpbGUoZXN0aW1hdGUsIHByb2JzID0gLngsIG5hLnJtID0gVFJVRSkpLAojICAgICAuZ3JvdXBzID0gImRyb3AiCiMgICApIHw+CiMgICBtdXRhdGUocGVyY2VudGlsZSA9IHBlcmNlbnRpbGUgKiAxMDApIHw+CiMgICBwaXZvdF93aWRlcihuYW1lc19mcm9tID0gdHlwZSwgdmFsdWVzX2Zyb20gPSB2YWx1ZSkgfD4KIyAgIHNlbGVjdChzdWJmaWVsZCwgCiMgICAgICAgICAgcGVyY2VudGlsZSwKIyAgICAgICAgICBkX25hdGl2ZSwgCiMgICAgICAgICAgZF9zLCAKIyAgICAgICAgICBkX3osIAojICAgICAgICAgIAojICAgICAgICAgIGFic19yLCAKIyAgICAgICAgICAjciwgCiMgICAgICAgICAgI3JobywgCiMgICAgICAgICAgI2Fic19yaG8sIAojICAgICAgICAgICNzcXJ0UjIsCiMgICAgICAgICAgCiMgICAgICAgICAgcGV0YTIsIAojICAgICAgICAgIFIyLCAKIyAgICAgICAgICAKIyAgICAgICAgICAjT1IsIAojICAgICAgICAgIGFic19PUiwgCiMgICAgICAgICAgI2xvZ09SLCAKIyAgICAgICAgICAKIyAgICAgICAgICBjaGkyLCAKIyAgICAgICAgICAKIyAgICAgICAgICBCLCAKIyAgICAgICAgICAjYWJzX0IsCiMgICAgICAgICAgc3RkQiwKIyAgICAgICAgICBhYnNfc3RkQikgfD4KIyAgICAgICAgICAjV2FsZAojICAgYXJyYW5nZShzdWJmaWVsZCwgcGVyY2VudGlsZSkKIyAKIyBkYXRhX3BlcmNlbnRpbGVzX2J5X3N1YmZpZWxkIHw+CiMgICBtdXRhdGVfaWYoaXMubnVtZXJpYywgcm91bmRfaGFsZl91cCwgZGlnaXRzID0gMikgfD4KIyAgIGthYmxlKCkgfD4KIyAgIGthYmxlX2NsYXNzaWMoZnVsbF93aWR0aCA9IEZBTFNFKQoKIyBkYXRhX3BlcmNlbnRpbGVzX2J5X3N1YmZpZWxkIHw+CiMgICBwaXZvdF9sb25nZXIoY29sID0gLWMocGVyY2VudGlsZSwgc3ViZmllbGQpLAojICAgICAgICAgICAgICAgIG5hbWVzX3RvID0gImVzdGltYXRvciIsCiMgICAgICAgICAgICAgICAgdmFsdWVzX3RvID0gImVzdGltYXRlIikgfD4KIyAgIGdncGxvdChhZXMoYXMuZmFjdG9yKHBlcmNlbnRpbGUpLCBlc3RpbWF0ZSkpICsKIyAgIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiLCB3aWR0aCA9IDAuOCkgKwojICAgdGhlbWVfbGluZWRyYXcoKSArCiMgICBmYWNldF9ncmlkKHN1YmZpZWxkIH4gZXN0aW1hdG9yLCBzY2FsZXMgPSAiZnJlZSIpCgojIGRhdGFfcGVyY2VudGlsZXNfYnlfc3ViZmllbGQgfD4KIyAgIHBpdm90X2xvbmdlcihjb2wgPSAtYyhwZXJjZW50aWxlLCBzdWJmaWVsZCksCiMgICAgICAgICAgICAgICAgbmFtZXNfdG8gPSAiZXN0aW1hdG9yIiwKIyAgICAgICAgICAgICAgICB2YWx1ZXNfdG8gPSAiZXN0aW1hdGUiKSB8PgojICAgbXV0YXRlKGVzdGltYXRvciA9IGZjdF9yZWxldmVsKGVzdGltYXRvciwKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZF9uYXRpdmUiLCAiZF9zIiwgImRfeiIsCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFic19yIiwgIlIyIiwgInBldGEyIiwKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWJzX09SIikpIHw+CiMgICBmaWx0ZXIoZXN0aW1hdG9yICVpbiUgYygiZF9uYXRpdmUiLCAiZF9zIiwgImRfeiIsICJhYnNfT1IiLCAicGV0YTIiLCAiYWJzX3IiLCAiUjIiKSkgfD4KIyAgIGdncGxvdChhZXMoYXMuZmFjdG9yKHBlcmNlbnRpbGUpLCBlc3RpbWF0ZSkpICsKIyAgIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiLCB3aWR0aCA9IDAuOCkgKwojICAgdGhlbWVfbGluZWRyYXcoKSArCiMgICBmYWNldF9ncmlkKGVzdGltYXRvciB+IHN1YmZpZWxkLCBzY2FsZXMgPSAiZnJlZSIpCiMgCiMgZGF0YV9wZXJjZW50aWxlc19ieV9zdWJmaWVsZCB8PgojICAgcGl2b3RfbG9uZ2VyKGNvbCA9IC1jKHBlcmNlbnRpbGUsIHN1YmZpZWxkKSwKIyAgICAgICAgICAgICAgICBuYW1lc190byA9ICJlc3RpbWF0b3IiLAojICAgICAgICAgICAgICAgIHZhbHVlc190byA9ICJlc3RpbWF0ZSIpIHw+CiMgICBtdXRhdGUoZXN0aW1hdG9yID0gZmN0X3JlbGV2ZWwoZXN0aW1hdG9yLAojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkX25hdGl2ZSIsICJkX3MiLCAiZF96IiwKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWJzX3IiLCAiUjIiLCAicGV0YTIiLAojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhYnNfT1IiKSkgfD4KIyAgIGZpbHRlcihlc3RpbWF0b3IgJWluJSBjKCJkX25hdGl2ZSIsICJkX3MiLCAiZF96IiwgImFic19PUiIsICJwZXRhMiIsICJhYnNfciIsICJSMiIpKSB8PgojICAgZ2dwbG90KGFlcyhhcy5mYWN0b3IocGVyY2VudGlsZSksIGVzdGltYXRlLCBmaWxsID0gc3ViZmllbGQpKSArCiMgICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5Iiwgd2lkdGggPSAwLjgsIHBvc2l0aW9uID0gcG9zaXRpb25fZG9kZ2Uod2lkdGggPSAuOCksIGNvbG9yID0gImJsYWNrIikgKwojICAgdGhlbWVfbGluZWRyYXcoKSArCiMgICBmYWNldF93cmFwKCB+IGVzdGltYXRvciwgc2NhbGVzID0gImZyZWUiKQoKYGBgCgpgYGB7cn0KCmRhdGFfcGVyY2VudGlsZXNfYnlfc3ViZmllbGQgPC0gCiAgZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSB8PgogIGZpbHRlcih0eXBlICVpbiUgdW5pcXVlKHR5cGUpKSB8PgogIGdyb3VwX2J5KHR5cGUsIHN1YmZpZWxkKSB8PgogIHN1bW1hcmlzZSgKICAgIGFjcm9zcygKICAgICAgLmNvbHMgPSBldmVyeXRoaW5nKCksCiAgICAgIC5mbnMgPSBsaXN0LCAKICAgICAgLm5hbWVzID0gInsuY29sfV9saXN0IgogICAgKSwgIyBqdXN0IGZvciBjbGFyaXR5IOKAlCB3ZSBvbmx5IGNhcmUgYWJvdXQgZXN0aW1hdGUgY29sdW1uCiAgICAuZ3JvdXBzID0gImRyb3BfbGFzdCIKICApIHw+CiAgc2VsZWN0KHR5cGUsIHN1YmZpZWxkLCBlc3RpbWF0ZSA9IGVzdGltYXRlX2xpc3QpIHw+CiAgdW5uZXN0KGVzdGltYXRlKSB8PgogIGdyb3VwX2J5KHR5cGUsIHN1YmZpZWxkKSB8PgogIHN1bW1hcmlzZSgKICAgIHBlcmNlbnRpbGUgPSBjKDEsIDUsIDEwLCAyNSwgNTAsIDc1LCA5MCwgOTUsIDk5KSAvIDEwMCwKICAgIHZhbHVlID0gbWFwX2RibChwZXJjZW50aWxlLCB+IHF1YW50aWxlKGVzdGltYXRlLCBwcm9icyA9IC54LCBuYS5ybSA9IFRSVUUpKSwKICAgIC5ncm91cHMgPSAiZHJvcCIKICApIHw+CiAgbXV0YXRlKHBlcmNlbnRpbGUgPSBwZXJjZW50aWxlICogMTAwKSB8PgogIHBpdm90X3dpZGVyKG5hbWVzX2Zyb20gPSBzdWJmaWVsZCwgdmFsdWVzX2Zyb20gPSB2YWx1ZSkgfD4KICBmaWx0ZXIodHlwZSAlaW4lIGMoImRfbmF0aXZlIiwKICAgICAgICAgICAgICAgICAgICAgImRfcyIsCiAgICAgICAgICAgICAgICAgICAgICJkX3oiLAogICAgICAgICAgICAgICAgICAgICAiYWJzX3IiLAogICAgICAgICAgICAgICAgICAgICAicGV0YTIiLAogICAgICAgICAgICAgICAgICAgICAiUjIiLAogICAgICAgICAgICAgICAgICAgICAiYWJzX09SIiwKICAgICAgICAgICAgICAgICAgICAgImNoaTIiLAogICAgICAgICAgICAgICAgICAgICAiQiIsCiAgICAgICAgICAgICAgICAgICAgICJzdGRCIiwKICAgICAgICAgICAgICAgICAgICAgImFic19zdGRCIikpIHw+CiAgbXV0YXRlKHR5cGUgPSBmY3RfcmVsZXZlbCh0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkX25hdGl2ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZF9zIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkX3oiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImFic19yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwZXRhMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImFic19PUiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2hpMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RkQiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWJzX3N0ZEIiKSkgfD4KICBhcnJhbmdlKHR5cGUsIHBlcmNlbnRpbGUpCgpkYXRhX3BlcmNlbnRpbGVzX2J5X3N1YmZpZWxkIHw+CiAgbXV0YXRlX2lmKGlzLm51bWVyaWMsIHJvdW5kX2hhbGZfdXAsIGRpZ2l0cyA9IDIpIHw+CiAga2FibGUoKSB8PgogIGthYmxlX2NsYXNzaWMoZnVsbF93aWR0aCA9IEZBTFNFKQoKYGBgCgojIFJpZGdlIHBsb3RzIGJ5IHN1YmZpZWxkCgpgYGB7cn0KCmxpYnJhcnkoZ2dyaWRnZXMpCgpkYXRhX2VmZmVjdHNpemVzX3Bvc3NpYmxlIHw+CiAgY291bnQodHlwZSkKCmRhdGFfZWZmZWN0c2l6ZXNfcG9zc2libGUgfD4KICBmaWx0ZXIodHlwZSA9PSAiZF9uYXRpdmUiKSB8PgogIGdyb3VwX2J5KHR5cGUpIHw+CiAgZmlsdGVyKGVzdGltYXRlIDw9IHF1YW50aWxlKGVzdGltYXRlLCAuOTksIG5hLnJtID0gVFJVRSkpIHw+CiAgZ2dwbG90KGFlcyh4ID0gZXN0aW1hdGUsIHkgPSBzdWJmaWVsZCwgZmlsbCA9IHN1YmZpZWxkKSkgKwogIGdlb21fZGVuc2l0eV9yaWRnZXMoYWxwaGEgPSAxKSArCiAgdGhlbWVfbGluZWRyYXcoKSArCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IGJyZWFrc19wcmV0dHkobiA9IDgpKSArCiAgbGFicyh4ID0gIkNvaGVuJ3MgZCBuYXRpdmUiLAogICAgICAgeSA9ICIiKSArCiAgc2NhbGVfZmlsbF92aXJpZGlzX2QoKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSB8PgogIGZpbHRlcih0eXBlID09ICJkX3MiKSB8PgogIGdyb3VwX2J5KHR5cGUpIHw+CiAgZmlsdGVyKGVzdGltYXRlIDw9IHF1YW50aWxlKGVzdGltYXRlLCAuOTksIG5hLnJtID0gVFJVRSkpIHw+CiAgZ2dwbG90KGFlcyh4ID0gZXN0aW1hdGUsIHkgPSBzdWJmaWVsZCwgZmlsbCA9IHN1YmZpZWxkKSkgKwogIGdlb21fZGVuc2l0eV9yaWRnZXMoYWxwaGEgPSAxKSArCiAgdGhlbWVfbGluZWRyYXcoKSArCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IGJyZWFrc19wcmV0dHkobiA9IDgpKSArCiAgbGFicyh4ID0gIkNvaGVuJ3MgZF9zIiwKICAgICAgIHkgPSAiIikgKwogIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCkgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCmRhdGFfZWZmZWN0c2l6ZXNfcG9zc2libGUgfD4KICBmaWx0ZXIodHlwZSA9PSAiZF96IikgfD4KICBncm91cF9ieSh0eXBlKSB8PgogIGZpbHRlcihlc3RpbWF0ZSA8PSBxdWFudGlsZShlc3RpbWF0ZSwgLjk5LCBuYS5ybSA9IFRSVUUpKSB8PgogIGdncGxvdChhZXMoeCA9IGVzdGltYXRlLCB5ID0gc3ViZmllbGQsIGZpbGwgPSBzdWJmaWVsZCkpICsKICBnZW9tX2RlbnNpdHlfcmlkZ2VzKGFscGhhID0gMSkgKwogIHRoZW1lX2xpbmVkcmF3KCkgKwogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBicmVha3NfcHJldHR5KG4gPSA4KSkgKwogIGxhYnMoeCA9ICJDb2hlbidzIGRfcyIsCiAgICAgICB5ID0gIiIpICsKICBzY2FsZV9maWxsX3ZpcmlkaXNfZCgpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgpgYGAKCiMgUGxvdCBkaXN0cmlidXRpb25zCgpJUyBUSElTIFRSSU1NSU5HIFRISU5HUyBXRUlSRExZPyBXSEVSRSBJUyBUSEUgQUJTT0xVVEUgU0NPUklORyBJTiBUSEUgQkVMT1c/CgpgYGB7cn0KCnBsb3RfZXMgPC0gZnVuY3Rpb24oZGF0YSwgeCwgdHJpbV9sb3dlciA9IDAsIHRyaW1fdXBwZXIgPSAxLCBiaW53aWR0aCA9IDAuMSwgeGxhYiwgdGl0bGUsIHN1YnRpdGxlKSB7CiAgZGF0YV9zdWJzZXQgPC0gZGF0YSB8PgogICAgZmlsdGVyKHR5cGUgPT0geCkKICAKICAjIHBsb3QgbGltaXRzCiAgcDEgPC0gcXVhbnRpbGUoZGF0YV9zdWJzZXQkZXN0aW1hdGUsIHRyaW1fbG93ZXIsIG5hLnJtID0gVFJVRSkKICBwOTkgPC0gcXVhbnRpbGUoZGF0YV9zdWJzZXQkZXN0aW1hdGUsIHRyaW1fdXBwZXIsIG5hLnJtID0gVFJVRSkKICAKICBnZ3Bsb3QoZGF0YV9zdWJzZXQsIGFlcyh4ID0gZXN0aW1hdGUpKSArCiAgICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aCA9IGJpbndpZHRoLCBib3VuZGFyeSA9IDApICsKICAgIHRoZW1lX2xpbmVkcmF3KCkgKwogICAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMocDEsIHA5OSksIGJyZWFrcyA9IHNjYWxlczo6YnJlYWtzX3ByZXR0eShuID0gMTApKSArCiAgICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gc2NhbGVzOjpicmVha3NfcHJldHR5KG4gPSA2KSkgKwogICAgbGFicyh0aXRsZSA9IHRpdGxlLCAKICAgICAgICAgc3VidGl0bGUgPSBzdWJ0aXRsZSwgCiAgICAgICAgIHggPSB4bGFiLAogICAgICAgICB5ID0gIkNvdW50IikKfQoKcF9kX25hdGl2ZSA8LSAKICBwbG90X2VzKGRhdGFfZWZmZWN0c2l6ZXNfcG9zc2libGUsICJkX25hdGl2ZSIsIHRyaW1fdXBwZXIgPSAwLjk5LAogICAgICAgICAgeGxhYiA9IGV4cHJlc3Npb24oIkNvaGVuJ3MgIippdGFsaWMoZCkpLAogICAgICAgICAgdGl0bGUgPSBleHByZXNzaW9uKCJBYnNvbHV0ZSBDb2hlbidzICIqaXRhbGljKGQpKSwKICAgICAgICAgIHN1YnRpdGxlID0gIjDigJM5OXRoIHBlcmNlbnRpbGUgcmFuZ2UiKQoKcF9kX3MgPC0gCiAgcGxvdF9lcyhkYXRhX2VmZmVjdHNpemVzX3Bvc3NpYmxlLCAiZF9zIiwgdHJpbV91cHBlciA9IDAuOTksCiAgICAgICAgICB4bGFiID0gZXhwcmVzc2lvbigiQ29oZW4ncyAiKml0YWxpYyhkKVtzXSksCiAgICAgICAgICB0aXRsZSA9IGV4cHJlc3Npb24oIkFic29sdXRlIENvaGVuJ3MgIippdGFsaWMoZClbc10qIiBlc3RpbWF0ZWQgZnJvbSAiKml0YWxpYyh0KSoiLXRlc3QiKSwKICAgICAgICAgIHN1YnRpdGxlID0gIjDigJM5OXRoIHBlcmNlbnRpbGUgcmFuZ2UiKQoKcF9kX3ogPC0gCiAgcGxvdF9lcyhkYXRhX2VmZmVjdHNpemVzX3Bvc3NpYmxlLCAiZF96IiwgdHJpbV91cHBlciA9IDAuOTksCiAgICAgICAgICB4bGFiID0gZXhwcmVzc2lvbigiQ29oZW4ncyAiKml0YWxpYyhkKVt6XSksCiAgICAgICAgICB0aXRsZSA9IGV4cHJlc3Npb24oIkFic29sdXRlIENvaGVuJ3MgIippdGFsaWMoZClbel0qIiBlc3RpbWF0ZWQgZnJvbSAiKml0YWxpYyh0KSoiLXRlc3QiKSwKICAgICAgICAgIHN1YnRpdGxlID0gIjDigJM5OXRoIHBlcmNlbnRpbGUgcmFuZ2UiKQoKcF9wZXRhMiA8LSAKICBwbG90X2VzKGRhdGFfZWZmZWN0c2l6ZXNfcG9zc2libGUsICJwZXRhMiIsIHRyaW1fbG93ZXIgPSAwLjAxLCB0cmltX3VwcGVyID0gMC45OSwgYmlud2lkdGggPSAwLjAxLAogICAgICAgICAgeGxhYiA9IGV4cHJlc3Npb24oaXRhbGljKGV0YSlbcF1eMiksCiAgICAgICAgICB0aXRsZSA9IGV4cHJlc3Npb24oaXRhbGljKGV0YSlbcF1eMioiIGVzdGltYXRlZCBmcm9tICIqaXRhbGljKEYpKiItdGVzdCIpLAogICAgICAgICAgc3VidGl0bGUgPSAiMeKAkzk5dGggcGVyY2VudGlsZSByYW5nZSIpCgpwX2Fic19yIDwtIAogIHBsb3RfZXMoZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSwgImFic19yIiwgYmlud2lkdGggPSAwLjEsCiAgICAgICAgICB4bGFiID0gZXhwcmVzc2lvbigiUGVhcnNvbidzICIqaXRhbGljKHIpKSwKICAgICAgICAgIHRpdGxlID0gZXhwcmVzc2lvbigiQWJzb2x1dGUgUGVhcnNvbidzICIqaXRhbGljKHIpKSwKICAgICAgICAgIHN1YnRpdGxlID0gIjDigJMxMDB0aCBwZXJjZW50aWxlIHJhbmdlIikgKyAKICBjb29yZF9jYXJ0ZXNpYW4oeGxpbSA9IGMoLTEsIDEpKQoKIyBkYXRhX2VmZmVjdHNpemVzX3Bvc3NpYmxlIHw+CiMgICBtdXRhdGUocl9vdXRfb2ZfYm91bmRzID0gY2FzZV93aGVuKHIgPCAtMSB+IFRSVUUsCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIgPiAxIH4gVFJVRSwKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSB+IEZBTFNFKSkgfD4KIyAgIHN1bW1hcml6ZShwZXJjZW50X3Jfb3V0X29mX2JvdW5kcyA9IG1lYW4ocl9vdXRfb2ZfYm91bmRzKSoxMDApCgpwX2Fic19yaG8gPC0gCiAgcGxvdF9lcyhkYXRhX2VmZmVjdHNpemVzX3Bvc3NpYmxlLCAicmhvIiwgYmlud2lkdGggPSAwLjEsCiAgICAgICAgICB4bGFiID0gZXhwcmVzc2lvbihpdGFsaWMocmhvKSksCiAgICAgICAgICB0aXRsZSA9IGV4cHJlc3Npb24oIkFic29sdXRlICIqaXRhbGljKHJobykpLAogICAgICAgICAgc3VidGl0bGUgPSAiMOKAkzEwMHRoIHBlcmNlbnRpbGUgcmFuZ2UiKSArIAogIGNvb3JkX2NhcnRlc2lhbih4bGltID0gYygtMSwgMSkpCgpwX3NxcnRSMiA8LSAKICBwbG90X2VzKGRhdGFfZWZmZWN0c2l6ZXNfcG9zc2libGUsICJzcXJ0UjIiLCBiaW53aWR0aCA9IDAuMSwKICAgICAgICAgIHhsYWIgPSBleHByZXNzaW9uKCJzcXJ0IFIiXjIpLAogICAgICAgICAgdGl0bGUgPSBleHByZXNzaW9uKCJzcXJ0IFIiXjIpLAogICAgICAgICAgc3VidGl0bGUgPSAiMOKAkzEwMHRoIHBlcmNlbnRpbGUgcmFuZ2UiKSArIAogIGNvb3JkX2NhcnRlc2lhbih4bGltID0gYygtMSwgMSkpCgpwX1IyIDwtIAogIHBsb3RfZXMoZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSwgIlIyIiwgYmlud2lkdGggPSAwLjEsCiAgICAgICAgICB4bGFiID0gZXhwcmVzc2lvbigiUiJeMiksCiAgICAgICAgICB0aXRsZSA9IGV4cHJlc3Npb24oIlIiXjIpLAogICAgICAgICAgc3VidGl0bGUgPSAiMOKAkzEwMHRoIHBlcmNlbnRpbGUgcmFuZ2UiKSArIAogIGNvb3JkX2NhcnRlc2lhbih4bGltID0gYygtMSwgMSkpCgojIGRhdF9lcyB8PgojICAgbXV0YXRlKFIyX291dF9vZl9ib3VuZHMgPSBjYXNlX3doZW4oUjIgPCAtMSB+IFRSVUUsCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSMiA+IDEgfiBUUlVFLAojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSB+IEZBTFNFKSkgfD4KIyAgIHN1bW1hcml6ZShwZXJjZW50X1IyX291dF9vZl9ib3VuZHMgPSBtZWFuKFIyX291dF9vZl9ib3VuZHMpKjEwMCkKCnBfc3RkQiA8LSAKICBwbG90X2VzKGRhdGFfZWZmZWN0c2l6ZXNfcG9zc2libGUsICJzdGRCIiwgdHJpbV9sb3dlciA9IDAuMDEsIHRyaW1fdXBwZXIgPSAwLjk1LCBiaW53aWR0aCA9IDAuMDEsCiAgICAgICAgICB4bGFiID0gZXhwcmVzc2lvbihiZXRhKSwKICAgICAgICAgIHRpdGxlID0gZXhwcmVzc2lvbihiZXRhKSwKICAgICAgICAgIHN1YnRpdGxlID0gIjHigJM5NXRoIHBlcmNlbnRpbGUgcmFuZ2UiKQoKcF9CIDwtIAogIHBsb3RfZXMoZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSwgIkIiLCB0cmltX2xvd2VyID0gMC4wMSwgdHJpbV91cHBlciA9IDAuOTUsIGJpbndpZHRoID0gMC4xLAogICAgICAgICAgeGxhYiA9IGV4cHJlc3Npb24oIkIiKSwKICAgICAgICAgIHRpdGxlID0gZXhwcmVzc2lvbigiQiIpLAogICAgICAgICAgc3VidGl0bGUgPSAiMeKAkzk1dGggcGVyY2VudGlsZSByYW5nZSIpCgpwX3dhbGQgPC0gCiAgcGxvdF9lcyhkYXRhX2VmZmVjdHNpemVzX3Bvc3NpYmxlLCAiV2FsZCIsIHRyaW1fbG93ZXIgPSAwLCB0cmltX3VwcGVyID0gMC45NSwgYmlud2lkdGggPSAxLAogICAgICAgICAgeGxhYiA9IGV4cHJlc3Npb24oIldhbGQiKSwKICAgICAgICAgIHRpdGxlID0gZXhwcmVzc2lvbigiV2FsZCIpLAogICAgICAgICAgc3VidGl0bGUgPSAiMeKAkzk1dGggcGVyY2VudGlsZSByYW5nZSIpCgpwX2NoaTIgPC0gCiAgcGxvdF9lcyhkYXRhX2VmZmVjdHNpemVzX3Bvc3NpYmxlLCAiY2hpMiIsIHRyaW1fbG93ZXIgPSAwLCB0cmltX3VwcGVyID0gMC45LCBiaW53aWR0aCA9IDUsCiAgICAgICAgICB4bGFiID0gZXhwcmVzc2lvbihjaGleMiksCiAgICAgICAgICB0aXRsZSA9IGV4cHJlc3Npb24oY2hpXjIpLAogICAgICAgICAgc3VidGl0bGUgPSAiMOKAkzkwdGggcGVyY2VudGlsZSByYW5nZSBvZiBwb3NpdGl2ZSB2YWx1ZXMiKSArIAogIGNvb3JkX2NhcnRlc2lhbih4bGltID0gYygwLCBOQSkpCgpwX09SIDwtIAogIHBsb3RfZXMoZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSwgIk9SIiwgdHJpbV9sb3dlciA9IDAuMDEsIHRyaW1fdXBwZXIgPSAwLjk4LAogICAgICAgICAgeGxhYiA9IGV4cHJlc3Npb24oIk9SIiksCiAgICAgICAgICB0aXRsZSA9IGV4cHJlc3Npb24oIk9SIiksCiAgICAgICAgICBzdWJ0aXRsZSA9ICIx4oCTOTh0aCBwZXJjZW50aWxlIHJhbmdlIikKCnBfYWJzX09SIDwtIAogIHBsb3RfZXMoZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSwgImFic19PUiIsIHRyaW1fdXBwZXIgPSAwLjk4LAogICAgICAgICAgeGxhYiA9IGV4cHJlc3Npb24oIkFic29sdXRlIE9SIiksCiAgICAgICAgICB0aXRsZSA9IGV4cHJlc3Npb24oIkFic29sdXRlIE9SIiksCiAgICAgICAgICBzdWJ0aXRsZSA9ICIw4oCTOTh0aCBwZXJjZW50aWxlIHJhbmdlIikKCnBfbG9nT1IgPC0gCiAgcGxvdF9lcyhkYXRhX2VmZmVjdHNpemVzX3Bvc3NpYmxlLCAibG9nT1IiLCB0cmltX2xvd2VyID0gMC4wMSwgdHJpbV91cHBlciA9IDAuOTksCiAgICAgICAgICB4bGFiID0gZXhwcmVzc2lvbigibG9nLW9kZHMiKSwKICAgICAgICAgIHRpdGxlID0gZXhwcmVzc2lvbigibG9nLW9kZHMiKSwKICAgICAgICAgIHN1YnRpdGxlID0gIjHigJM5OXRoIHBlcmNlbnRpbGUgcmFuZ2UiKQoKIyBwbG90X2VzKGRhdGFfZWZmZWN0c2l6ZXNfcG9zc2libGUsIHosIHRyaW1fbG93ZXIgPSAwLjAxLCB0cmltX3VwcGVyID0gMC45OCwKIyAgICAgICAgIHhsYWIgPSBleHByZXNzaW9uKCJ6LXNjb3JlIiksCiMgICAgICAgICB0aXRsZSA9IGV4cHJlc3Npb24oInotc2NvcmUiKSwKIyAgICAgICAgIHN1YnRpdGxlID0gIjHigJM5OHRoIHBlcmNlbnRpbGUgcmFuZ2UiKSArCiMgICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSAxLjk2LCBjb2xvciA9ICJwaW5rIiwgbGluZXR5cGUgPSAiZGFzaGVkIikKIwojIHBsb3RfZXMoZGF0X3AsIHBfdmFsLCB0cmltX2xvd2VyID0gMCwgdHJpbV91cHBlciA9IDEsIGJpbndpZHRoID0gMC4wMDEsCiMgICAgICAgICB4bGFiID0gZXhwcmVzc2lvbihpdGFsaWMocCkqIiB2YWx1ZSIpLAojICAgICAgICAgdGl0bGUgPSBleHByZXNzaW9uKGl0YWxpYyhwKSoiIHZhbHVlIiksCiMgICAgICAgICBzdWJ0aXRsZSA9ICJCZXR3ZWVuIDAgYW5kIC4xIikgKwojICAgY29vcmRfY2FydGVzaWFuKHhsaW0gPSBjKDAsIDAuMSkpCiMgCiMgcGxvdF9lcyhkYXRfcCwgcF9pbXBsaWVkLCB0cmltX2xvd2VyID0gMCwgdHJpbV91cHBlciA9IDEsIGJpbndpZHRoID0gMC4wMDEsCiMgICAgICAgICB4bGFiID0gZXhwcmVzc2lvbigiSW1wbGllZCAiKml0YWxpYyhwKSoiIHZhbHVlIiksCiMgICAgICAgICB0aXRsZSA9IGV4cHJlc3Npb24oIkltcGxpZWQgIippdGFsaWMocCkqIiB2YWx1ZSIpLAojICAgICAgICAgc3VidGl0bGUgPSAiQmV0d2VlbiAwIGFuZCAuMSIpICsKIyAgIGNvb3JkX2NhcnRlc2lhbih4bGltID0gYygwLCAwLjEpKQoKYGBgCgojIyBDb21iaW5lZCBDb2hlbidzIGQgcGxvdHMKCmBgYHtyIGZpZy5oZWlnaHQ9MTAsIGZpZy53aWR0aD02fQoKcF9kX25hdGl2ZSArIGNvb3JkX2NhcnRlc2lhbih4bGltID0gYygwLDgpKSArCiAgcF9kX3MgKyBjb29yZF9jYXJ0ZXNpYW4oeGxpbSA9IGMoMCw4KSkgKwogIHBfZF96ICsgY29vcmRfY2FydGVzaWFuKHhsaW0gPSBjKDAsOCkpICsKICBwbG90X2xheW91dChuY29sID0gMSkKCmBgYAoKIyMgSW5kaXZpZHVhbCBwbG90cwoKYGBge3J9CgpwX2Fic19yCgpwX3BldGEyICsKICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSAuMDEsIGxpbmV0eXBlID0gImRhc2hlZCIsIGNvbG9yID0gImJsdWUiKSArCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gLjA2LCBsaW5ldHlwZSA9ICJkYXNoZWQiLCBjb2xvciA9ICJibHVlIikgKwogIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IC4xNCwgbGluZXR5cGUgPSAiZGFzaGVkIiwgY29sb3IgPSAiYmx1ZSIpCgpwX1IyCgpwX2Fic19PUgoKcF9jaGkyCgpwX0IKcF9zdGRCCgpgYGAKCiMgUXVhbnRpbGUgcmVncmVzc2lvbgoKYGBge3IgZmlnLmhlaWdodD01LCBmaWcud2lkdGg9OX0KCnF1YW50aWxlX3JlZ3Jlc3Npb25fYW5kX3Bsb3QgPC0gZnVuY3Rpb24oZGF0YSwgZXNfdHlwZSwgbGFiZWwpewogIGRhdF9mb3JfcmVnIDwtIGRhdGEgfD4gCiAgICBmaWx0ZXIodHlwZSA9PSBlc190eXBlKSB8PgogICAgbXV0YXRlKGVzdGltYXRlID0gcm91bmRfaGFsZl91cChlc3RpbWF0ZSwgMikpIHw+CiAgICBjb3VudChzdWJmaWVsZCwgZXN0aW1hdGUpCiAgCiAgIyBmaXQgcXVhbnRpbGUgcmVncmVzc2lvbnMgYXQgbXVsdGlwbGUgcXVhbnRpbGVzCiAgI2ZpdF8wNSA8LSBycShlc3RpbWF0ZSB+IDAgKyBzdWJmaWVsZCwgdGF1ID0gMC4wNSwgd2VpZ2h0cyA9IG4sIG1ldGhvZCA9ICJmbiIsIGRhdGEgPSBkYXRfZm9yX3JlZykKICBmaXRfMTAgPC0gcnEoZXN0aW1hdGUgfiAwICsgc3ViZmllbGQsIHRhdSA9IDAuMTAsIHdlaWdodHMgPSBuLCBtZXRob2QgPSAiZm4iLCBkYXRhID0gZGF0X2Zvcl9yZWcpCiAgZml0XzI1IDwtIHJxKGVzdGltYXRlIH4gMCArIHN1YmZpZWxkLCB0YXUgPSAwLjI1LCB3ZWlnaHRzID0gbiwgbWV0aG9kID0gImZuIiwgZGF0YSA9IGRhdF9mb3JfcmVnKQogIGZpdF81MCA8LSBycShlc3RpbWF0ZSB+IDAgKyBzdWJmaWVsZCwgdGF1ID0gMC41MCwgd2VpZ2h0cyA9IG4sIG1ldGhvZCA9ICJmbiIsIGRhdGEgPSBkYXRfZm9yX3JlZykKICBmaXRfNzUgPC0gcnEoZXN0aW1hdGUgfiAwICsgc3ViZmllbGQsIHRhdSA9IDAuNzUsIHdlaWdodHMgPSBuLCBtZXRob2QgPSAiZm4iLCBkYXRhID0gZGF0X2Zvcl9yZWcpCiAgZml0XzkwIDwtIHJxKGVzdGltYXRlIH4gMCArIHN1YmZpZWxkLCB0YXUgPSAwLjkwLCB3ZWlnaHRzID0gbiwgbWV0aG9kID0gImZuIiwgZGF0YSA9IGRhdF9mb3JfcmVnKQogIGZpdF85NSA8LSBycShlc3RpbWF0ZSB+IDAgKyBzdWJmaWVsZCwgdGF1ID0gMC45NSwgd2VpZ2h0cyA9IG4sIG1ldGhvZCA9ICJmbiIsIGRhdGEgPSBkYXRfZm9yX3JlZykKICBmaXRfOTkgPC0gcnEoZXN0aW1hdGUgfiAwICsgc3ViZmllbGQsIHRhdSA9IDAuOTksIHdlaWdodHMgPSBuLCBtZXRob2QgPSAiZm4iLCBkYXRhID0gZGF0X2Zvcl9yZWcpCiAgCiAgIyB3cmFuZ2xlIGFuZCBwbG90CiAgcmVzIDwtIGJpbmRfcm93cygKICAgICMgc3VtbWFyeShmaXRfMDUsIHNlID0gIm5pZCIpJGNvZWZmaWNpZW50cyB8PgogICAgIyAgIGFzLmRhdGEuZnJhbWUoKSB8PgogICAgIyAgIHJvd25hbWVzX3RvX2NvbHVtbih2YXIgPSAic3ViZmllbGQiKSB8PgogICAgIyAgIG11dGF0ZShwZXJjZW50aWxlID0gNSksCiAgICBzdW1tYXJ5KGZpdF8xMCwgc2UgPSAibmlkIikkY29lZmZpY2llbnRzIHw+CiAgICAgIGFzLmRhdGEuZnJhbWUoKSB8PgogICAgICByb3duYW1lc190b19jb2x1bW4odmFyID0gInN1YmZpZWxkIikgfD4KICAgICAgbXV0YXRlKHBlcmNlbnRpbGUgPSAxMCksCiAgICBzdW1tYXJ5KGZpdF8yNSwgc2UgPSAibmlkIikkY29lZmZpY2llbnRzIHw+CiAgICAgIGFzLmRhdGEuZnJhbWUoKSB8PgogICAgICByb3duYW1lc190b19jb2x1bW4odmFyID0gInN1YmZpZWxkIikgfD4KICAgICAgbXV0YXRlKHBlcmNlbnRpbGUgPSAyNSksCiAgICBzdW1tYXJ5KGZpdF81MCwgc2UgPSAibmlkIikkY29lZmZpY2llbnRzIHw+CiAgICAgIGFzLmRhdGEuZnJhbWUoKSB8PgogICAgICByb3duYW1lc190b19jb2x1bW4odmFyID0gInN1YmZpZWxkIikgfD4KICAgICAgbXV0YXRlKHBlcmNlbnRpbGUgPSA1MCksCiAgICBzdW1tYXJ5KGZpdF83NSwgc2UgPSAibmlkIikkY29lZmZpY2llbnRzIHw+CiAgICAgIGFzLmRhdGEuZnJhbWUoKSB8PgogICAgICByb3duYW1lc190b19jb2x1bW4odmFyID0gInN1YmZpZWxkIikgfD4KICAgICAgbXV0YXRlKHBlcmNlbnRpbGUgPSA3NSksCiAgICBzdW1tYXJ5KGZpdF85MCwgc2UgPSAibmlkIikkY29lZmZpY2llbnRzIHw+CiAgICAgIGFzLmRhdGEuZnJhbWUoKSB8PgogICAgICByb3duYW1lc190b19jb2x1bW4odmFyID0gInN1YmZpZWxkIikgfD4KICAgICAgbXV0YXRlKHBlcmNlbnRpbGUgPSA5MCksCiAgICBzdW1tYXJ5KGZpdF85NSwgc2UgPSAibmlkIikkY29lZmZpY2llbnRzIHw+CiAgICAgIGFzLmRhdGEuZnJhbWUoKSB8PgogICAgICByb3duYW1lc190b19jb2x1bW4odmFyID0gInN1YmZpZWxkIikgfD4KICAgICAgbXV0YXRlKHBlcmNlbnRpbGUgPSA5NSksCiAgICBzdW1tYXJ5KGZpdF85OSwgc2UgPSAibmlkIikkY29lZmZpY2llbnRzIHw+CiAgICAgIGFzLmRhdGEuZnJhbWUoKSB8PgogICAgICByb3duYW1lc190b19jb2x1bW4odmFyID0gInN1YmZpZWxkIikgfD4KICAgICAgbXV0YXRlKHBlcmNlbnRpbGUgPSA5OSkKICApIHw+CiAgICBtdXRhdGUoc3ViZmllbGQgPSBzdHJfcmVtb3ZlKHN1YmZpZWxkLCAic3ViZmllbGQiKSwKICAgICAgICAgICBwZXJjZW50aWxlID0gYXMuZmFjdG9yKHBlcmNlbnRpbGUpKSB8PgogICAgcmVuYW1lKGVzdGltYXRlID0gVmFsdWUsCiAgICAgICAgICAgc2UgPSBgU3RkLiBFcnJvcmApIHw+CiAgICBtdXRhdGUoc3ViZmllbGQgPSBmY3RfcmVsZXZlbChzdWJmaWVsZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTb2NpYWwgUHN5Y2hvbG9neSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXBwbGllZCBQc3ljaG9sb2d5IiwgCQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNsaW5pY2FsIFBzeWNob2xvZ3kiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRldmVsb3BtZW50YWwgYW5kIEVkdWNhdGlvbmFsIFBzeWNob2xvZ3kiLAkJCQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4cGVyaW1lbnRhbCBhbmQgQ29nbml0aXZlIFBzeWNob2xvZ3kiLAkJCQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdlbmVyYWwgUHN5Y2hvbG9neSIpKQogIAogICMgZ2dwbG90KHJlcywgYWVzKGVzdGltYXRlLCBzdWJmaWVsZCwgY29sb3IgPSBwZXJjZW50aWxlKSkgKwogICMgICBnZW9tX2xpbmVyYW5nZWgoYWVzKHhtaW4gPSBlc3RpbWF0ZSAtIHNlKjEuOTYsIHhtYXggPSBlc3RpbWF0ZSArIHNlKjEuOTYpLAogICMgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDAuNzUpKSArCiAgIyAgIGdlb21fcG9pbnQocG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDAuNzUpKSArCiAgIyAgIHRoZW1lX2xpbmVkcmF3KCkgKwogICMgICB5bGFiKCIiKSArCiAgIyAgIHNjYWxlX3hfY29udGludW91cyhuYW1lID0gbGFiZWwsIGJyZWFrcyA9IHNjYWxlczo6YnJlYWtzX3ByZXR0eShuID0gOCkpICsKICAjICAgZ3VpZGVzKGNvbG9yID0gZ3VpZGVfbGVnZW5kKHJldmVyc2UgPSBUUlVFKSkgCiAgCiAgcGxvdCA8LSByZXMgfD4KICAgIGZpbHRlcihwZXJjZW50aWxlICVpbiUgYygxMCwgMjUsIDUwLCA3NSwgOTAsIDk1KSkgfD4KICAgIGdncGxvdChhZXMoZXN0aW1hdGUsIHBlcmNlbnRpbGUsIGNvbG9yID0gc3ViZmllbGQpKSArCiAgICBnZW9tX2xpbmVyYW5nZWgoYWVzKHhtaW4gPSBlc3RpbWF0ZSAtIHNlKjEuOTYsIHhtYXggPSBlc3RpbWF0ZSArIHNlKjEuOTYpLAogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb25fZG9kZ2Uod2lkdGggPSAwLjc1KSkgKwogICAgZ2VvbV9wb2ludChwb3NpdGlvbiA9IHBvc2l0aW9uX2RvZGdlKHdpZHRoID0gMC43NSkpICsKICAgIHRoZW1lX2xpbmVkcmF3KCkgKwogICAgc2NhbGVfeF9jb250aW51b3VzKG5hbWUgPSBsYWJlbCwgYnJlYWtzID0gc2NhbGVzOjpicmVha3NfcHJldHR5KG4gPSA4KSkgKwogICAgeWxhYigiUGVyY2VudGlsZSIpICsKICAgIGd1aWRlcyhjb2xvciA9IGd1aWRlX2xlZ2VuZChyZXZlcnNlID0gVFJVRSkpIAogIAogIHJldHVybihsaXN0KHJlcyA9IHJlcywKICAgICAgICAgICAgICBwbG90ID0gcGxvdCkpCn0KCnF1YW50aWxlX3JlZ3Jlc3Npb25fYW5kX3Bsb3QoZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSwgImRfbmF0aXZlIiwgIkNvaGVuJ3MgZCIpCnF1YW50aWxlX3JlZ3Jlc3Npb25fYW5kX3Bsb3QoZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSwgImRfcyIsICJDb2hlbidzIGRzIGZyb20gdC10ZXN0IikKcXVhbnRpbGVfcmVncmVzc2lvbl9hbmRfcGxvdChkYXRhX2VmZmVjdHNpemVzX3Bvc3NpYmxlLCAiZF96IiwgIkNvaGVuJ3MgZHogZnJvbSB0LXRlc3QiKQpxdWFudGlsZV9yZWdyZXNzaW9uX2FuZF9wbG90KGRhdGFfZWZmZWN0c2l6ZXNfcG9zc2libGUsICJhYnNfciIsICJBYnNvbHV0ZSByIikKcXVhbnRpbGVfcmVncmVzc2lvbl9hbmRfcGxvdChkYXRhX2VmZmVjdHNpemVzX3Bvc3NpYmxlLCAicGV0YTIiLCAicGV0YTIiKSAjIHRocm93cyBlcnJvciwgbmVlZHMgZml4aW5nIApxdWFudGlsZV9yZWdyZXNzaW9uX2FuZF9wbG90KGRhdGFfZWZmZWN0c2l6ZXNfcG9zc2libGUsICJSMiIsICJSMiIpCnF1YW50aWxlX3JlZ3Jlc3Npb25fYW5kX3Bsb3QoZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSwgImFic19PUiIsICJBYnNvbHV0ZSBPUiIpCiNxdWFudGlsZV9yZWdyZXNzaW9uX2FuZF9wbG90KGRhdGFfZWZmZWN0c2l6ZXNfcG9zc2libGUsICJjaGkyIiwgImNoaTIiKQojcXVhbnRpbGVfcmVncmVzc2lvbl9hbmRfcGxvdChkYXRhX2VmZmVjdHNpemVzX3Bvc3NpYmxlLCAiQiIsICJCIikKI3F1YW50aWxlX3JlZ3Jlc3Npb25fYW5kX3Bsb3QoZGF0YV9lZmZlY3RzaXplc19wb3NzaWJsZSwgInN0ZEIiLCAiIikKcXVhbnRpbGVfcmVncmVzc2lvbl9hbmRfcGxvdChkYXRhX2VmZmVjdHNpemVzX3Bvc3NpYmxlLCAiYWJzX3N0ZEIiLCAiQWJzb2x1dGUgc3RkLiBCIikgCgpgYGAKCiMgU2Vzc2lvbiBpbmZvCgpgYGB7cn0KCnNlc3Npb25JbmZvKCkKCmBgYAoKCg==